{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            0                       1  2        3       4       5      6   7  \\\n",
       "0  2019162542  /front-api/bill/create  8  1057.31   88.75  177.72  132.0  60   \n",
       "1      162644  /front-api/bill/create  5   749.12  103.79  240.38  149.0  60   \n",
       "2      162742  /front-api/bill/create  5   845.84  136.31  225.73  169.0  60   \n",
       "3      162808  /front-api/bill/create  9  1305.52   90.12  196.61  145.0  60   \n",
       "4      162943  /front-api/bill/create  3   568.89  138.45  232.02  189.0  60   \n",
       "\n",
       "                     8  \n",
       "0  2018-11-01 00:00:07  \n",
       "1  2018-11-01 00:01:07  \n",
       "2  2018-11-01 00:02:07  \n",
       "3  2018-11-01 00:03:07  \n",
       "4  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#读取文件\n",
    "df = pd.read_csv('./pysourse/log.txt',header= None,sep = '\\t')\n",
    "#显示前5个\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 更改列名\n",
    "df.columns = ['id','api','count','res_time_sum','res_time_min','res_time_max','res_time_avg','interval','createtime']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>createtime</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id                     api  count  res_time_sum  res_time_min  \\\n",
       "0  2019162542  /front-api/bill/create      8       1057.31         88.75   \n",
       "1      162644  /front-api/bill/create      5        749.12        103.79   \n",
       "2      162742  /front-api/bill/create      5        845.84        136.31   \n",
       "3      162808  /front-api/bill/create      9       1305.52         90.12   \n",
       "4      162943  /front-api/bill/create      3        568.89        138.45   \n",
       "\n",
       "   res_time_max  res_time_avg  interval           createtime  \n",
       "0        177.72         132.0        60  2018-11-01 00:00:07  \n",
       "1        240.38         149.0        60  2018-11-01 00:01:07  \n",
       "2        225.73         169.0        60  2018-11-01 00:02:07  \n",
       "3        196.61         145.0        60  2018-11-01 00:03:07  \n",
       "4        232.02         189.0        60  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>createtime</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>130816</th>\n",
       "      <td>9701279</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>4</td>\n",
       "      <td>615.51</td>\n",
       "      <td>108.87</td>\n",
       "      <td>193.69</td>\n",
       "      <td>153.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-04-05 18:00:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>86647</th>\n",
       "      <td>6611597</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>1</td>\n",
       "      <td>116.67</td>\n",
       "      <td>116.67</td>\n",
       "      <td>116.67</td>\n",
       "      <td>116.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-02-10 01:06:04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>123252</th>\n",
       "      <td>9122413</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>17</td>\n",
       "      <td>4038.96</td>\n",
       "      <td>95.34</td>\n",
       "      <td>643.50</td>\n",
       "      <td>237.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-03-27 22:22:12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>170141</th>\n",
       "      <td>12714488</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>17</td>\n",
       "      <td>6527.06</td>\n",
       "      <td>136.41</td>\n",
       "      <td>2022.46</td>\n",
       "      <td>383.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-20 14:57:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42415</th>\n",
       "      <td>3661481</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>12</td>\n",
       "      <td>1813.94</td>\n",
       "      <td>87.28</td>\n",
       "      <td>263.21</td>\n",
       "      <td>151.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-12-20 15:10:39</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              id                     api  count  res_time_sum  res_time_min  \\\n",
       "130816   9701279  /front-api/bill/create      4        615.51        108.87   \n",
       "86647    6611597  /front-api/bill/create      1        116.67        116.67   \n",
       "123252   9122413  /front-api/bill/create     17       4038.96         95.34   \n",
       "170141  12714488  /front-api/bill/create     17       6527.06        136.41   \n",
       "42415    3661481  /front-api/bill/create     12       1813.94         87.28   \n",
       "\n",
       "        res_time_max  res_time_avg  interval           createtime  \n",
       "130816        193.69         153.0        60  2019-04-05 18:00:21  \n",
       "86647         116.67         116.0        60  2019-02-10 01:06:04  \n",
       "123252        643.50         237.0        60  2019-03-27 22:22:12  \n",
       "170141       2022.46         383.0        60  2019-05-20 14:57:11  \n",
       "42415         263.21         151.0        60  2018-12-20 15:10:39  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#随机采样 多次执行，数据不一样\n",
    "df.sample(5)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(179496, 9)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#查看df结构，可以看到有多少条多少列\n",
    "df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "id                int64\n",
       "api              object\n",
       "count             int64\n",
       "res_time_sum    float64\n",
       "res_time_min    float64\n",
       "res_time_max    float64\n",
       "res_time_avg    float64\n",
       "interval          int64\n",
       "createtime       object\n",
       "dtype: object"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#查看数据类型，int,float,object\n",
    "df.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 9 columns):\n",
      "id              179496 non-null int64\n",
      "api             179496 non-null object\n",
      "count           179496 non-null int64\n",
      "res_time_sum    179496 non-null float64\n",
      "res_time_min    179496 non-null float64\n",
      "res_time_max    179496 non-null float64\n",
      "res_time_avg    179496 non-null float64\n",
      "interval        179496 non-null int64\n",
      "createtime      179496 non-null object\n",
      "dtypes: float64(4), int64(3), object(2)\n",
      "memory usage: 11.0+ MB\n"
     ]
    }
   ],
   "source": [
    "#查看表详情\n",
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                     179496\n",
       "unique                         1\n",
       "top       /front-api/bill/create\n",
       "freq                      179496\n",
       "Name: api, dtype: object"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#查看api这一列的情况，是否全部相同，如果相同可以删除\n",
    "df['api'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>createtime</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id  count  res_time_sum  res_time_min  res_time_max  res_time_avg  \\\n",
       "0  2019162542      8       1057.31         88.75        177.72         132.0   \n",
       "1      162644      5        749.12        103.79        240.38         149.0   \n",
       "2      162742      5        845.84        136.31        225.73         169.0   \n",
       "3      162808      9       1305.52         90.12        196.61         145.0   \n",
       "4      162943      3        568.89        138.45        232.02         189.0   \n",
       "\n",
       "   interval           createtime  \n",
       "0        60  2018-11-01 00:00:07  \n",
       "1        60  2018-11-01 00:01:07  \n",
       "2        60  2018-11-01 00:02:07  \n",
       "3        60  2018-11-01 00:03:07  \n",
       "4        60  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = df.drop('api',axis=1) #优化内存，指定axis，删除一列\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 8 columns):\n",
      "id              179496 non-null int64\n",
      "count           179496 non-null int64\n",
      "res_time_sum    179496 non-null float64\n",
      "res_time_min    179496 non-null float64\n",
      "res_time_max    179496 non-null float64\n",
      "res_time_avg    179496 non-null float64\n",
      "interval        179496 non-null int64\n",
      "createtime      179496 non-null object\n",
      "dtypes: float64(4), int64(3), object(1)\n",
      "memory usage: 10.3+ MB\n"
     ]
    }
   ],
   "source": [
    "#在查看df的详情  ,删除一列后，小了1m左右\n",
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                  179496\n",
       "unique                 179496\n",
       "top       2019-03-04 19:45:46\n",
       "freq                        1\n",
       "Name: createtime, dtype: object"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#查看创建日期的情况\n",
    "df['createtime'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>createtime</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>153089</th>\n",
       "      <td>11406128</td>\n",
       "      <td>6</td>\n",
       "      <td>2105.08</td>\n",
       "      <td>125.74</td>\n",
       "      <td>992.46</td>\n",
       "      <td>350.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:00:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153090</th>\n",
       "      <td>11406236</td>\n",
       "      <td>7</td>\n",
       "      <td>2579.11</td>\n",
       "      <td>76.55</td>\n",
       "      <td>987.47</td>\n",
       "      <td>368.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:01:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153091</th>\n",
       "      <td>11406347</td>\n",
       "      <td>7</td>\n",
       "      <td>1277.79</td>\n",
       "      <td>109.65</td>\n",
       "      <td>236.73</td>\n",
       "      <td>182.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:02:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153092</th>\n",
       "      <td>11406446</td>\n",
       "      <td>7</td>\n",
       "      <td>2137.20</td>\n",
       "      <td>131.55</td>\n",
       "      <td>920.52</td>\n",
       "      <td>305.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:03:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153093</th>\n",
       "      <td>11406488</td>\n",
       "      <td>13</td>\n",
       "      <td>2948.70</td>\n",
       "      <td>86.42</td>\n",
       "      <td>491.31</td>\n",
       "      <td>226.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:04:48</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              id  count  res_time_sum  res_time_min  res_time_max  \\\n",
       "153089  11406128      6       2105.08        125.74        992.46   \n",
       "153090  11406236      7       2579.11         76.55        987.47   \n",
       "153091  11406347      7       1277.79        109.65        236.73   \n",
       "153092  11406446      7       2137.20        131.55        920.52   \n",
       "153093  11406488     13       2948.70         86.42        491.31   \n",
       "\n",
       "        res_time_avg  interval           createtime  \n",
       "153089         350.0        60  2019-05-01 00:00:48  \n",
       "153090         368.0        60  2019-05-01 00:01:48  \n",
       "153091         182.0        60  2019-05-01 00:02:48  \n",
       "153092         305.0        60  2019-05-01 00:03:48  \n",
       "153093         226.0        60  2019-05-01 00:04:48  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#查看一个时间段的数据  ,但是这样效率太慢，也太复杂，可以把索引换成时间\n",
    "df[(df.createtime>='2019-05-01')&(df.createtime<='2019-05-02')].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RangeIndex(start=0, stop=179496, step=1)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "# 查看当前索引\n",
    "df.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['2018-11-01 00:00:07', '2018-11-01 00:01:07', '2018-11-01 00:02:07',\n",
       "       '2018-11-01 00:03:07', '2018-11-01 00:04:07', '2018-11-01 00:05:07',\n",
       "       '2018-11-01 00:06:07', '2018-11-01 00:07:07', '2018-11-01 00:08:07',\n",
       "       '2018-11-01 00:09:07',\n",
       "       ...\n",
       "       '2019-05-30 23:01:21', '2019-05-30 23:02:21', '2019-05-30 23:03:21',\n",
       "       '2019-05-30 23:04:21', '2019-05-30 23:05:21', '2019-05-30 23:06:21',\n",
       "       '2019-05-30 23:07:21', '2019-05-30 23:08:21', '2019-05-30 23:09:21',\n",
       "       '2019-05-30 23:10:21'],\n",
       "      dtype='object', name='createtime', length=179496)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#把索引改成时间,现在这个是字符串类型\n",
    "df.index = df['createtime']\n",
    "#查看当前索引值\n",
    "df.index  #可看出是字符串"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2018-11-01 00:00:07', '2018-11-01 00:01:07',\n",
       "               '2018-11-01 00:02:07', '2018-11-01 00:03:07',\n",
       "               '2018-11-01 00:04:07', '2018-11-01 00:05:07',\n",
       "               '2018-11-01 00:06:07', '2018-11-01 00:07:07',\n",
       "               '2018-11-01 00:08:07', '2018-11-01 00:09:07',\n",
       "               ...\n",
       "               '2019-05-30 23:01:21', '2019-05-30 23:02:21',\n",
       "               '2019-05-30 23:03:21', '2019-05-30 23:04:21',\n",
       "               '2019-05-30 23:05:21', '2019-05-30 23:06:21',\n",
       "               '2019-05-30 23:07:21', '2019-05-30 23:08:21',\n",
       "               '2019-05-30 23:09:21', '2019-05-30 23:10:21'],\n",
       "              dtype='datetime64[ns]', name='createtime', length=179496, freq=None)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 把他改成时间索引，转化成时间\n",
    "df.index = pd.to_datetime(df.createtime) #转换成时间\n",
    "df.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>createtime</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>createtime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:00:48</th>\n",
       "      <td>11406128</td>\n",
       "      <td>6</td>\n",
       "      <td>2105.08</td>\n",
       "      <td>125.74</td>\n",
       "      <td>992.46</td>\n",
       "      <td>350.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:00:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:01:48</th>\n",
       "      <td>11406236</td>\n",
       "      <td>7</td>\n",
       "      <td>2579.11</td>\n",
       "      <td>76.55</td>\n",
       "      <td>987.47</td>\n",
       "      <td>368.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:01:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:02:48</th>\n",
       "      <td>11406347</td>\n",
       "      <td>7</td>\n",
       "      <td>1277.79</td>\n",
       "      <td>109.65</td>\n",
       "      <td>236.73</td>\n",
       "      <td>182.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:02:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:03:48</th>\n",
       "      <td>11406446</td>\n",
       "      <td>7</td>\n",
       "      <td>2137.20</td>\n",
       "      <td>131.55</td>\n",
       "      <td>920.52</td>\n",
       "      <td>305.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:03:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:04:48</th>\n",
       "      <td>11406488</td>\n",
       "      <td>13</td>\n",
       "      <td>2948.70</td>\n",
       "      <td>86.42</td>\n",
       "      <td>491.31</td>\n",
       "      <td>226.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:04:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:05:48</th>\n",
       "      <td>11406599</td>\n",
       "      <td>6</td>\n",
       "      <td>2463.78</td>\n",
       "      <td>137.75</td>\n",
       "      <td>1445.82</td>\n",
       "      <td>410.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:05:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:06:48</th>\n",
       "      <td>11406661</td>\n",
       "      <td>6</td>\n",
       "      <td>2875.67</td>\n",
       "      <td>166.32</td>\n",
       "      <td>1304.41</td>\n",
       "      <td>479.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:06:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:07:48</th>\n",
       "      <td>11406751</td>\n",
       "      <td>8</td>\n",
       "      <td>1764.17</td>\n",
       "      <td>93.63</td>\n",
       "      <td>425.96</td>\n",
       "      <td>220.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:07:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:08:48</th>\n",
       "      <td>11406812</td>\n",
       "      <td>8</td>\n",
       "      <td>2577.12</td>\n",
       "      <td>148.68</td>\n",
       "      <td>864.03</td>\n",
       "      <td>322.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:08:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:09:48</th>\n",
       "      <td>11406929</td>\n",
       "      <td>5</td>\n",
       "      <td>929.82</td>\n",
       "      <td>67.42</td>\n",
       "      <td>413.51</td>\n",
       "      <td>185.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:09:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:10:48</th>\n",
       "      <td>11407005</td>\n",
       "      <td>4</td>\n",
       "      <td>912.60</td>\n",
       "      <td>171.17</td>\n",
       "      <td>297.85</td>\n",
       "      <td>228.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:10:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:11:48</th>\n",
       "      <td>11407047</td>\n",
       "      <td>2</td>\n",
       "      <td>279.56</td>\n",
       "      <td>123.47</td>\n",
       "      <td>156.09</td>\n",
       "      <td>139.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:11:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:12:48</th>\n",
       "      <td>11407133</td>\n",
       "      <td>4</td>\n",
       "      <td>714.73</td>\n",
       "      <td>125.50</td>\n",
       "      <td>226.84</td>\n",
       "      <td>178.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:12:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:13:48</th>\n",
       "      <td>11407234</td>\n",
       "      <td>5</td>\n",
       "      <td>1285.32</td>\n",
       "      <td>81.12</td>\n",
       "      <td>436.79</td>\n",
       "      <td>257.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:13:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:14:48</th>\n",
       "      <td>11407282</td>\n",
       "      <td>6</td>\n",
       "      <td>1425.18</td>\n",
       "      <td>99.28</td>\n",
       "      <td>571.42</td>\n",
       "      <td>237.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:14:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:15:48</th>\n",
       "      <td>11407386</td>\n",
       "      <td>5</td>\n",
       "      <td>947.69</td>\n",
       "      <td>97.91</td>\n",
       "      <td>313.41</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:15:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:16:48</th>\n",
       "      <td>11407436</td>\n",
       "      <td>4</td>\n",
       "      <td>1000.06</td>\n",
       "      <td>157.33</td>\n",
       "      <td>335.86</td>\n",
       "      <td>250.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:16:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:17:48</th>\n",
       "      <td>11407531</td>\n",
       "      <td>2</td>\n",
       "      <td>279.14</td>\n",
       "      <td>117.30</td>\n",
       "      <td>161.84</td>\n",
       "      <td>139.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:17:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:18:48</th>\n",
       "      <td>11407611</td>\n",
       "      <td>7</td>\n",
       "      <td>994.75</td>\n",
       "      <td>73.33</td>\n",
       "      <td>229.60</td>\n",
       "      <td>142.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:18:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:19:48</th>\n",
       "      <td>11407632</td>\n",
       "      <td>8</td>\n",
       "      <td>2207.46</td>\n",
       "      <td>76.31</td>\n",
       "      <td>1114.91</td>\n",
       "      <td>275.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:19:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:20:48</th>\n",
       "      <td>11407730</td>\n",
       "      <td>6</td>\n",
       "      <td>1244.12</td>\n",
       "      <td>119.18</td>\n",
       "      <td>400.02</td>\n",
       "      <td>207.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:20:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:21:48</th>\n",
       "      <td>11407845</td>\n",
       "      <td>4</td>\n",
       "      <td>892.43</td>\n",
       "      <td>103.66</td>\n",
       "      <td>374.82</td>\n",
       "      <td>223.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:21:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:22:48</th>\n",
       "      <td>11407897</td>\n",
       "      <td>4</td>\n",
       "      <td>1093.26</td>\n",
       "      <td>66.57</td>\n",
       "      <td>434.01</td>\n",
       "      <td>273.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:22:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:23:48</th>\n",
       "      <td>11407980</td>\n",
       "      <td>6</td>\n",
       "      <td>1116.52</td>\n",
       "      <td>89.45</td>\n",
       "      <td>485.38</td>\n",
       "      <td>186.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:23:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:24:48</th>\n",
       "      <td>11408036</td>\n",
       "      <td>6</td>\n",
       "      <td>770.21</td>\n",
       "      <td>77.44</td>\n",
       "      <td>217.87</td>\n",
       "      <td>128.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:24:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:25:48</th>\n",
       "      <td>11408107</td>\n",
       "      <td>6</td>\n",
       "      <td>1308.97</td>\n",
       "      <td>89.86</td>\n",
       "      <td>399.41</td>\n",
       "      <td>218.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:25:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:26:48</th>\n",
       "      <td>11408194</td>\n",
       "      <td>5</td>\n",
       "      <td>848.25</td>\n",
       "      <td>108.51</td>\n",
       "      <td>260.88</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:26:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:27:48</th>\n",
       "      <td>11408253</td>\n",
       "      <td>5</td>\n",
       "      <td>2407.06</td>\n",
       "      <td>90.05</td>\n",
       "      <td>1186.62</td>\n",
       "      <td>481.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:27:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:28:48</th>\n",
       "      <td>11408357</td>\n",
       "      <td>4</td>\n",
       "      <td>710.47</td>\n",
       "      <td>163.89</td>\n",
       "      <td>191.80</td>\n",
       "      <td>177.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:28:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:29:48</th>\n",
       "      <td>11408389</td>\n",
       "      <td>7</td>\n",
       "      <td>1675.60</td>\n",
       "      <td>110.26</td>\n",
       "      <td>619.54</td>\n",
       "      <td>239.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:29:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:30:49</th>\n",
       "      <td>11473695</td>\n",
       "      <td>3</td>\n",
       "      <td>471.28</td>\n",
       "      <td>86.32</td>\n",
       "      <td>194.36</td>\n",
       "      <td>157.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:30:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:31:49</th>\n",
       "      <td>11473734</td>\n",
       "      <td>9</td>\n",
       "      <td>1753.33</td>\n",
       "      <td>81.64</td>\n",
       "      <td>545.84</td>\n",
       "      <td>194.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:31:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:32:49</th>\n",
       "      <td>11473812</td>\n",
       "      <td>3</td>\n",
       "      <td>566.92</td>\n",
       "      <td>166.21</td>\n",
       "      <td>213.47</td>\n",
       "      <td>188.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:32:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:33:49</th>\n",
       "      <td>11473844</td>\n",
       "      <td>2</td>\n",
       "      <td>258.84</td>\n",
       "      <td>65.36</td>\n",
       "      <td>193.48</td>\n",
       "      <td>129.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:33:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:34:49</th>\n",
       "      <td>11473942</td>\n",
       "      <td>2</td>\n",
       "      <td>300.97</td>\n",
       "      <td>138.49</td>\n",
       "      <td>162.48</td>\n",
       "      <td>150.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:34:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:35:49</th>\n",
       "      <td>11474015</td>\n",
       "      <td>6</td>\n",
       "      <td>792.55</td>\n",
       "      <td>69.46</td>\n",
       "      <td>239.17</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:35:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:36:49</th>\n",
       "      <td>11474088</td>\n",
       "      <td>6</td>\n",
       "      <td>1157.81</td>\n",
       "      <td>124.12</td>\n",
       "      <td>423.91</td>\n",
       "      <td>192.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:36:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:37:49</th>\n",
       "      <td>11474163</td>\n",
       "      <td>2</td>\n",
       "      <td>433.06</td>\n",
       "      <td>98.41</td>\n",
       "      <td>334.65</td>\n",
       "      <td>216.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:37:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:38:49</th>\n",
       "      <td>11474223</td>\n",
       "      <td>4</td>\n",
       "      <td>425.51</td>\n",
       "      <td>75.69</td>\n",
       "      <td>144.11</td>\n",
       "      <td>106.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:38:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:39:49</th>\n",
       "      <td>11474299</td>\n",
       "      <td>4</td>\n",
       "      <td>604.55</td>\n",
       "      <td>103.00</td>\n",
       "      <td>191.69</td>\n",
       "      <td>151.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:39:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:40:49</th>\n",
       "      <td>11474340</td>\n",
       "      <td>4</td>\n",
       "      <td>599.14</td>\n",
       "      <td>141.13</td>\n",
       "      <td>162.50</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:40:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:41:49</th>\n",
       "      <td>11474412</td>\n",
       "      <td>3</td>\n",
       "      <td>519.14</td>\n",
       "      <td>130.28</td>\n",
       "      <td>219.06</td>\n",
       "      <td>173.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:41:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:42:49</th>\n",
       "      <td>11474510</td>\n",
       "      <td>1</td>\n",
       "      <td>336.79</td>\n",
       "      <td>336.79</td>\n",
       "      <td>336.79</td>\n",
       "      <td>336.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:42:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:43:49</th>\n",
       "      <td>11474559</td>\n",
       "      <td>8</td>\n",
       "      <td>1741.96</td>\n",
       "      <td>83.68</td>\n",
       "      <td>592.15</td>\n",
       "      <td>217.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:43:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:44:49</th>\n",
       "      <td>11474630</td>\n",
       "      <td>5</td>\n",
       "      <td>573.94</td>\n",
       "      <td>75.98</td>\n",
       "      <td>160.20</td>\n",
       "      <td>114.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:44:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:45:49</th>\n",
       "      <td>11474719</td>\n",
       "      <td>5</td>\n",
       "      <td>1221.15</td>\n",
       "      <td>74.16</td>\n",
       "      <td>726.07</td>\n",
       "      <td>244.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:45:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:46:49</th>\n",
       "      <td>11474783</td>\n",
       "      <td>7</td>\n",
       "      <td>775.40</td>\n",
       "      <td>69.56</td>\n",
       "      <td>165.25</td>\n",
       "      <td>110.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:46:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:47:49</th>\n",
       "      <td>11474860</td>\n",
       "      <td>5</td>\n",
       "      <td>1109.98</td>\n",
       "      <td>114.90</td>\n",
       "      <td>406.98</td>\n",
       "      <td>221.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:47:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:48:49</th>\n",
       "      <td>11474885</td>\n",
       "      <td>5</td>\n",
       "      <td>563.23</td>\n",
       "      <td>83.24</td>\n",
       "      <td>171.42</td>\n",
       "      <td>112.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:48:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:49:49</th>\n",
       "      <td>11474974</td>\n",
       "      <td>3</td>\n",
       "      <td>351.08</td>\n",
       "      <td>69.84</td>\n",
       "      <td>148.27</td>\n",
       "      <td>117.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:49:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:50:49</th>\n",
       "      <td>11475041</td>\n",
       "      <td>4</td>\n",
       "      <td>609.49</td>\n",
       "      <td>89.03</td>\n",
       "      <td>235.60</td>\n",
       "      <td>152.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:50:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:51:49</th>\n",
       "      <td>11475066</td>\n",
       "      <td>4</td>\n",
       "      <td>1285.34</td>\n",
       "      <td>154.31</td>\n",
       "      <td>538.34</td>\n",
       "      <td>321.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:51:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:52:49</th>\n",
       "      <td>11475136</td>\n",
       "      <td>4</td>\n",
       "      <td>884.68</td>\n",
       "      <td>111.59</td>\n",
       "      <td>468.82</td>\n",
       "      <td>221.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:52:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:53:49</th>\n",
       "      <td>11475226</td>\n",
       "      <td>7</td>\n",
       "      <td>1377.46</td>\n",
       "      <td>133.20</td>\n",
       "      <td>248.60</td>\n",
       "      <td>196.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:53:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:54:49</th>\n",
       "      <td>11475311</td>\n",
       "      <td>4</td>\n",
       "      <td>656.67</td>\n",
       "      <td>126.56</td>\n",
       "      <td>243.48</td>\n",
       "      <td>164.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:54:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:55:49</th>\n",
       "      <td>11475363</td>\n",
       "      <td>6</td>\n",
       "      <td>1083.97</td>\n",
       "      <td>70.85</td>\n",
       "      <td>262.22</td>\n",
       "      <td>180.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:55:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:56:49</th>\n",
       "      <td>11475483</td>\n",
       "      <td>4</td>\n",
       "      <td>840.00</td>\n",
       "      <td>117.31</td>\n",
       "      <td>382.63</td>\n",
       "      <td>210.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:56:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:57:49</th>\n",
       "      <td>11475550</td>\n",
       "      <td>2</td>\n",
       "      <td>295.51</td>\n",
       "      <td>101.71</td>\n",
       "      <td>193.80</td>\n",
       "      <td>147.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:57:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:58:49</th>\n",
       "      <td>11475597</td>\n",
       "      <td>2</td>\n",
       "      <td>431.99</td>\n",
       "      <td>84.43</td>\n",
       "      <td>347.56</td>\n",
       "      <td>215.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:58:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:59:49</th>\n",
       "      <td>11475664</td>\n",
       "      <td>3</td>\n",
       "      <td>428.84</td>\n",
       "      <td>103.58</td>\n",
       "      <td>206.57</td>\n",
       "      <td>142.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:59:49</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>884 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                           id  count  res_time_sum  res_time_min  \\\n",
       "createtime                                                         \n",
       "2019-05-01 00:00:48  11406128      6       2105.08        125.74   \n",
       "2019-05-01 00:01:48  11406236      7       2579.11         76.55   \n",
       "2019-05-01 00:02:48  11406347      7       1277.79        109.65   \n",
       "2019-05-01 00:03:48  11406446      7       2137.20        131.55   \n",
       "2019-05-01 00:04:48  11406488     13       2948.70         86.42   \n",
       "...                       ...    ...           ...           ...   \n",
       "2019-05-01 23:55:49  11475363      6       1083.97         70.85   \n",
       "2019-05-01 23:56:49  11475483      4        840.00        117.31   \n",
       "2019-05-01 23:57:49  11475550      2        295.51        101.71   \n",
       "2019-05-01 23:58:49  11475597      2        431.99         84.43   \n",
       "2019-05-01 23:59:49  11475664      3        428.84        103.58   \n",
       "\n",
       "                     res_time_max  res_time_avg  interval           createtime  \n",
       "createtime                                                                      \n",
       "2019-05-01 00:00:48        992.46         350.0        60  2019-05-01 00:00:48  \n",
       "2019-05-01 00:01:48        987.47         368.0        60  2019-05-01 00:01:48  \n",
       "2019-05-01 00:02:48        236.73         182.0        60  2019-05-01 00:02:48  \n",
       "2019-05-01 00:03:48        920.52         305.0        60  2019-05-01 00:03:48  \n",
       "2019-05-01 00:04:48        491.31         226.0        60  2019-05-01 00:04:48  \n",
       "...                           ...           ...       ...                  ...  \n",
       "2019-05-01 23:55:49        262.22         180.0        60  2019-05-01 23:55:49  \n",
       "2019-05-01 23:56:49        382.63         210.0        60  2019-05-01 23:56:49  \n",
       "2019-05-01 23:57:49        193.80         147.0        60  2019-05-01 23:57:49  \n",
       "2019-05-01 23:58:49        347.56         215.0        60  2019-05-01 23:58:49  \n",
       "2019-05-01 23:59:49        206.57         142.0        60  2019-05-01 23:59:49  \n",
       "\n",
       "[884 rows x 8 columns]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#生产环境中，自增索引没什么作用，通常时间做索引，如果使用字符串就必须按照<>的来分，用时间可分年月日分析\n",
    "df['2019-5-1']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([60], dtype=int64)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#interval也是没变，可以删除；；id也没用了\n",
    "df.interval.unique()  #unique，可以看出只有一个值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df.drop(['id','interval'],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 179496 entries, 2018-11-01 00:00:07 to 2019-05-30 23:10:21\n",
      "Data columns (total 6 columns):\n",
      "count           179496 non-null int64\n",
      "res_time_sum    179496 non-null float64\n",
      "res_time_min    179496 non-null float64\n",
      "res_time_max    179496 non-null float64\n",
      "res_time_avg    179496 non-null float64\n",
      "createtime      179496 non-null object\n",
      "dtypes: float64(4), int64(1), object(1)\n",
      "memory usage: 8.9+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>7.175909</td>\n",
       "      <td>1393.177832</td>\n",
       "      <td>108.419626</td>\n",
       "      <td>359.880374</td>\n",
       "      <td>187.812208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>4.325160</td>\n",
       "      <td>1499.486073</td>\n",
       "      <td>79.640693</td>\n",
       "      <td>638.919827</td>\n",
       "      <td>224.464813</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>3.210000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>36.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>4.000000</td>\n",
       "      <td>607.707500</td>\n",
       "      <td>83.410000</td>\n",
       "      <td>198.280000</td>\n",
       "      <td>144.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>7.000000</td>\n",
       "      <td>1154.905000</td>\n",
       "      <td>97.120000</td>\n",
       "      <td>256.090000</td>\n",
       "      <td>167.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>10.000000</td>\n",
       "      <td>1834.117500</td>\n",
       "      <td>116.990000</td>\n",
       "      <td>374.410000</td>\n",
       "      <td>202.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>31.000000</td>\n",
       "      <td>142650.550000</td>\n",
       "      <td>18896.640000</td>\n",
       "      <td>142468.270000</td>\n",
       "      <td>71325.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               count   res_time_sum   res_time_min   res_time_max  \\\n",
       "count  179496.000000  179496.000000  179496.000000  179496.000000   \n",
       "mean        7.175909    1393.177832     108.419626     359.880374   \n",
       "std         4.325160    1499.486073      79.640693     638.919827   \n",
       "min         1.000000      36.550000       3.210000      36.550000   \n",
       "25%         4.000000     607.707500      83.410000     198.280000   \n",
       "50%         7.000000    1154.905000      97.120000     256.090000   \n",
       "75%        10.000000    1834.117500     116.990000     374.410000   \n",
       "max        31.000000  142650.550000   18896.640000  142468.270000   \n",
       "\n",
       "        res_time_avg  \n",
       "count  179496.000000  \n",
       "mean      187.812208  \n",
       "std       224.464813  \n",
       "min        36.000000  \n",
       "25%       144.000000  \n",
       "50%       167.000000  \n",
       "75%       202.000000  \n",
       "max     71325.000000  "
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#查看表的统计\n",
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#初步分析count  直方图\n",
    "df['count'].hist()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#表示接口调用分布情况，大部分都在10次以内\n",
    "#修改尺寸，变小\n",
    "df['count'].hist(bins = 30)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#切出一天的数据，绘制一天时段接口调用情况\n",
    "df['2019-5-1']['count'].plot()\n",
    "plt.show()\n",
    "#可以看出，凌晨无人访问，下午3点访问是高峰，晚上89点也是高峰"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "#用count重采样，用一个小时进行采样，没那么多数据点，图像比较平滑\n",
    "df2 = df['2019-5-1']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>createtime</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:00:00</th>\n",
       "      <td>4.428571</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 01:00:00</th>\n",
       "      <td>2.272727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 02:00:00</th>\n",
       "      <td>1.833333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 03:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 04:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 05:00:00</th>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 06:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 07:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 08:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 09:00:00</th>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 10:00:00</th>\n",
       "      <td>1.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 11:00:00</th>\n",
       "      <td>1.604651</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 12:00:00</th>\n",
       "      <td>3.298246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 13:00:00</th>\n",
       "      <td>6.866667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 14:00:00</th>\n",
       "      <td>10.483333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 15:00:00</th>\n",
       "      <td>12.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 16:00:00</th>\n",
       "      <td>9.916667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 17:00:00</th>\n",
       "      <td>7.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 18:00:00</th>\n",
       "      <td>6.783333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:00:00</th>\n",
       "      <td>9.850000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 20:00:00</th>\n",
       "      <td>11.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 21:00:00</th>\n",
       "      <td>10.416667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 22:00:00</th>\n",
       "      <td>8.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:00:00</th>\n",
       "      <td>5.083333</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         count\n",
       "createtime                    \n",
       "2019-05-01 00:00:00   4.428571\n",
       "2019-05-01 01:00:00   2.272727\n",
       "2019-05-01 02:00:00   1.833333\n",
       "2019-05-01 03:00:00        NaN\n",
       "2019-05-01 04:00:00        NaN\n",
       "2019-05-01 05:00:00   2.000000\n",
       "2019-05-01 06:00:00        NaN\n",
       "2019-05-01 07:00:00        NaN\n",
       "2019-05-01 08:00:00        NaN\n",
       "2019-05-01 09:00:00   1.000000\n",
       "2019-05-01 10:00:00   1.400000\n",
       "2019-05-01 11:00:00   1.604651\n",
       "2019-05-01 12:00:00   3.298246\n",
       "2019-05-01 13:00:00   6.866667\n",
       "2019-05-01 14:00:00  10.483333\n",
       "2019-05-01 15:00:00  12.333333\n",
       "2019-05-01 16:00:00   9.916667\n",
       "2019-05-01 17:00:00   7.666667\n",
       "2019-05-01 18:00:00   6.783333\n",
       "2019-05-01 19:00:00   9.850000\n",
       "2019-05-01 20:00:00  11.000000\n",
       "2019-05-01 21:00:00  10.416667\n",
       "2019-05-01 22:00:00   8.000000\n",
       "2019-05-01 23:00:00   5.083333"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#resample需要一个dataframe,2个[]表示dataframe,从1分钟采样变成1小时采样\n",
    "df2 = df2[['count']].resample('1H').mean()\n",
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xce27b30>"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAESCAYAAADkJY5uAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd3RV15X48e/WUy9ISEigQi/CNFEEuFDdG8QObkkcO4ljr3iSOI7HM0l+yW8mKzPJpMclbXBJPBP/3O24xB2MARtjRAdTJJAEEkUSkkAIVN/5/XGvbFlWfe3e97Q/a2mhd98tW+Jpv/POPWcfMcaglFIq/EQ5HYBSSinfaAJXSqkwpQlcKaXClCZwpZQKU5rAlVIqTGkCV0qpMBUdyosNGzbMjBkzJpSXVEqpsLd58+YaY0xm1+0hTeBjxoyhqKgolJdUSqmwJyLl3W3XLhSllApTmsCVUipMaQJXSqkwpQlcKaXClCZwpZQKU5rAlVIqTGkCVyqCGGNoam13OgwVIprAlYogf32/jHk/fZv6My1Oh6JCQBO4UhGipc3Ln989wKmmNt7YfczpcFQIaAJXKkK8vP0Ix081Ex8TxcvbjzodjgqBPhO4iDwqIlUisqvTtl+JyF4R2SEiL4hIWnDDVEr1xhjDQ+sOMjErmdsXjuP9AzVUNTQ5HZYKsv60wP8KXN5l21vANGPMDGA/8IMAx6WUGoD1JTXsPdbA7QvHsbwgB6+B13ZqN0qk6zOBG2PWArVdtr1pjGmzH34A5AUhNqVUPz20rpRhyXF8blYOE4enMHlECi9tP+J0WCrIAtEH/jXgtZ6eFJE7RKRIRIqqq6sDcDmlVGd7j51i7f5qvnL+aOKiPQAsK8hhc3kdFXVnHI5OBZNfCVxEfgi0AY/3tI8xZqUxptAYU5iZ+ZlytkopPz28rpSEGA9fmj/6423LZuQA8I8dejMzkvmcwEXkVuBq4EvGGBO4kJRS/XX8VBMvbqvk+sI8hibFfrx9VEYiBSPTtBslwvmUwEXkcuB7wHJjjH5GU8ohj71fRpvXcNuCsZ95bnlBDruPnOJA9WkHIlOh0J9hhE8AG4B8EakQkduA3wMpwFsisk1E/hzkOJVSXTQ2t/H4xkNcNmUEozOSPvP81TOyEbHGh6vI1OeSasaYL3Sz+ZEgxKKUGoBnig5z8mwrty8a1+3zw4fEM39sOi9vP8J3LpqIiIQ4QhVsOhNTqTDU7jU88l4ps0elMWf00B73W1aQw4HqRvYcbQhhdCpUNIErFYbe2H2Mw7VnuaOH1neHK6ZlEx0lejMzQmkCVyrMGGNYufYgozMSuWTKiF73TU+KZcHEYby8/Qg6WCzyaAJXKsxsLq9j2+F6blswFk9U3/3ay2bkUFl/lq2H60MQnQolTeBKhZmH1h0kNSGG6+b0r4LFpVOHExsdxUvbtBsl0mgCVyqMlNY08uZHx/nyuaNJjO1zEBkAKfExXJifxT92HqXdq90okUQTuFJh5NH1pcRERXHL+aP73rmTZQU5VDc0s/HgiSBFppygCVypMFHX2MIzmw9zzawcslLiB3TshZOzSIr18PIO7UaJJJrAlQoTf/ugnKZWL19f2PvQwe4kxHq4ZMpwXtt1jJY2bxCiU07QBK5UGGhqbeexDWUsyc9k0vAUn86xfGYO9WdaWV+iZZ0jhSZwpcLAi9sqqTndwu0+tL47LJiQSWpCjK6XGUE0gSvlcl6v4aF1pUzJHsL54zN8Pk9sdBRXTBvBm7uPcbalPYARhpffry7mm49v4fip8F8zVBO4Ui737v5qSqpOc/uisX4XpFpekENjSzvv7KsKUHThZfXe4/z6zf38Y+dRLrtvLa/uDO9PI5rAlXK5lWsPMmJIPFfbq+z4Y/64DDJT4gZlidmqU03c+8wOJo9I4dW7FjIqPZF/enwL9zy9jVNNrU6H5xNN4Eq52K7Kk2w4eIKvXjCGGI//f66eKOGq6dms2ltFQ5gmLV94vYbvPr2NMy1t/P6Ls5iSM4Tn7jyfuy6cwN+3VnLFfev4sLS27xO5jCZwpVzsoXUHSYr1cNO8UQE757KCHFravLz10fGAndPt/nvtQd4rOcGPl01lQpY1iifGE8U9l+bzzDfOJ9oj3LhyAz9/bS/NbeFzf0ATuFIudaT+LK/sOMpN80aRmhATsPPOHpVGblrCoOlG2Xa4nt+8uY8rp4/gxrkjP/P8nNFDefWuhdxYOJI/v3uAa/7wPvuPh0f9dE3gSrnUX94rBeCrF4wJ6HlFhGUFOawrrqGusSWg53abhqZW7npiK8OHxPNf187o8SZwUlw0P18xg4duKaTqVBNXP7ieR9eX4nV57RhN4Eq50KmmVp748DBXTs8mb2hiwM+/rCCbNq/htV3HAn5utzDG8KO/76Ki7gz33zST1MS+P8VcMmU4r9+9iIUThvGTVz7ilkc/5NhJ9w431ASulAs99eFhTje3cfvCz642HwhTsocwPjOJl7ZXBuX8bvD8lkpe3HaEuy+eROGY9H4fl5kSx8O3FvKza6ezubyOy+5b69ruJk3gSrmM12v46/tlzB+bzoy8tKBco6MbZWNpbURMaOmqtKaRf3txF/PGpvPNpRMGfLyI8MX5o3j1OwsZOyyJbz+xlbuf3MrJs+4auaMJXCmXKak+TWX9WVb0c8EGXy0ryMEY+MeO8J7M0lVLm5e7nthKtCeK+26c2a9Vi3oydlgSz37jPO6+eCIv7zjKFfetpbSmMYDR+kcTuFIuU1RWB8DcAXzs98X4zGSm5gyJuAWPf/3mPnZWnuQXK2aQk5bg9/miPVHcffEknrvzfE40tnx8c9kNNIEr5TJF5bVkJMUyJiPwNy+7WlaQw7bD9RyuPRP0a4XCu/urWbn2IDefO4rLp/W+4PNAzRyZxsXnDOfVnUdpa3dHSV5N4Eq5zObyOuaMHup33ZP+uHpGNkBEtMKrG5r556e3M2l4Mj+6akpQrrGsIJua0y1scMnKRprAlXKR6oZmyk+coXDM0JBcL29oInNGD3XtKIv+8noN9z6znYamVh78wmziYzxBuc6S/CyS46Jd8/vqM4GLyKMiUiUiuzptSxeRt0Sk2P43NK82pSLc5nKrHsec0cHt/+5s2Yxs9h5roDhMZh9259H3Snl3fzU/unoK+SN8W/CiP+JjPFw61VrZyA1T7vvTAv8rcHmXbd8HVhljJgKr7MdKKT8VldURGx3FtNwhIbvmlTOyiRJc06ocqJ0VJ/nF63u5dMpwbp4fuJoxPVlWkENDUxtr99cE/Vp96TOBG2PWAl3LdH0OeMz+/jHgmgDHpdSgVFReR0FeKnHRwekC6E5WSjznjc/g5R1HMcbdU8e7amxu464ntzIsOY5fXtfzVPlAWjBhGEMTY1zxhudrH/hwY8xRAPvfrJ52FJE7RKRIRIqqq3UtPqV6cralnd1HToa0+6TD8oIcSmsa2VV5KuTX9se/v7Sb8hON/O7GmaQlxobkmjGeKK6Yns1bHx3nTEtbSK7Zk6DfxDTGrDTGFBpjCjMzM4N9OaXC1vaKelrbDYWjQ39L6bKpI4jxSFhNrX9xWyXPbq7gWxdO5Nxxvi8154tlM3I429rOqj3OrmzkawI/LiLZAPa/g3N9JqUCaHO5NYFnjgMJPC0xliX5Wfx92xHXjHHuTdWpJn74wi4KRw/lrgsHPlXeX/PGpjN8SJzjwy99TeAvAbfa398KvBiYcJQavIrKapmQlczQpNB0BXS1YnYe1Q3NrCtx/uZcX97ac5zTzW389NrpRAdgpaKBslY2yuHdfdWO1kfpzzDCJ4ANQL6IVIjIbcDPgUtEpBi4xH6slPKR12vYXF7nSPdJhwsnZzE0MYbnNlc4FkN/rdtfQ25aApOGJzsWw/KZObS0e3lzt3MleaP72sEY84UenroowLEoNWiVVJ/mVFObI90nHWKjo1hekMMTmw5z8mxrQFcBCqS2di/vH6jhyunZIRl10pOCvFRGpifw0vYjXF/42ZV+QkFnYirlAh0FrAZStzoYVszJo6XN6+oKhTsqT3KqqY0FE4c5GoeIsGxGDu8fOEHN6WZHYtAErpQLhLKAVW+m56YyMSuZ57a4txtl3f4aROCC8c4mcLC6Udq9htd2OvOGpwlcKRcIZQGr3ogIK+bksbm8zlV1rztbV1zNjNxUx272dpY/PIWJWcm8vF0TuFKDUqgLWPXl2lm5RAk878JWeENTK1sP1zvefdKhY2WjD8tqOXrybMivrwlcKYc5UcCqN8OHxLNgYibPb6l03arsGw6coN1rWDjRPZMClxXkAPCKA61wTeBKOcyJAlZ9WTE7l8r6s3xQ6o661x3WFdeQGOth9ih3fFoBa9m16bmpvLwj9JN6NIEr5TAnClj15bKpI0iJi+a5ze6aWr++pIZzx2UQG+2u1LW8IIcdFSdDft/AXb8FpQaZsy3t7Kp0poBVb+JjPFw5PZvXdh2lsdnZgk0dDteeobSmkYUu6f/u7Cp7ZaNXQjy1XhO4Ug7aXlFPm9cw1yU3MDtbMSePMy3tvL7LuZmGna0rtqb4u6n/u0NOWgJzxwwNeTeKJnClHORkAau+zB0zlFHpia4ZE76+pJrs1HjGZyY5HUq3lhfksP/4afYeC11JXk3gSjmoo4BVqGpZD4SI8PnZuWw4eILK+tAPkeus3WtYX1zDwonDHB8r35MrpmfjiZKQLvSgCVwph7ihgFVfVszOwxh4weFW+I6Kek41tbmy+6TDsOQ4zh+fwcvbQ7eykSZwpRzihgJWfRmZnsi8sek8t6XS0eXW1hfb0+cnuO8GZmfLCnI4VHuG7RUnQ3I9TeBKOcQtBaz6ct3sPEprGtlyqN6xGNYV1zAtJ5V0F0yf781lU0cQ64kKWTeKJnClHOKWAlZ9uWL6COJjohy7mXm6uY0th+pcOXywq9SEGBbnZ/LKjiO0h2AWqyZwpRzilgJWfUmJj+HyqSN4ZfsRmlrbQ379Dw6coM1rXFP/pC/LCnI4fqqZTWW1Qb+WJnClHOC2AlZ9WTEnj1NNbby953jIr72uuJqEGI+r7xV0dvE5WSTEeEKyXqYmcKUc4LYCVn05f/wwRgyJd2S5tXXFNZw7Lt1VpQZ6kxgbzcVThvPazqO0BnmBaE3gSjnAjQWseuOJEq6dncva4hqqGppCdt2KujMcrGlkgYuHD3Zn2Yxs6s608l6QF4jWBK6UAza5sIBVX1bMzqPda3hxa+gmqqy3p88vCpP+7w6L8zNJiY8OejeKJnClQuxsSzu7K0+6fvhgVxOykikYmcZzWypCNiZ8XXENI4bEMyHLudXnfREX7eHyqSN4c/fxoN741QSuVIh1FLBy8wzMnlw3O5e9xxrYfST49T7avYb3DtSwwMXT53uzfGYOp5vbWLOvKmjX0ASuVIi5uYBVX5YV5BDrCc2Y8F2VJ6k/0xoW47+7c964DDKSYoO6XqYmcKVCzM0FrPqSlhjLRedk8dK2I0EfYbGuuBqABS6fPt+TaE8UV07PZtXe45wOUk11TeBKhVA4FLDqy4rZeZxobGHNvuqgXmddcQ1Tc4aQkRwX1OsE0/KZOTS1enn7o+CMn9cErlQIhUMBq74szs8kIyk2qGPCP5k+H17DB7uaM2oo2anxQauN4lcCF5HvishuEdklIk+ISHygAlMqEoVLAavexHiiWD4zh1V7j1N/piUo19h48ASt7Sbshg92FRUlLCvIYW1xdVB+Vz4ncBHJBe4CCo0x0wAPcFOgAlMqEoVLAau+rJidR2u7CVrLcl1xDfExUcwJk1IDvVk2I4fWdhOUpen87UKJBhJEJBpIBEK7IJxSYSZcClj1ZWrOECaPSOHZLcFZtX5dcTXzx2aE1USnnkzLHcKYjMSgTOrxOYEbYyqBXwOHgKPASWPMm133E5E7RKRIRIqqq4N700MpNwu3Ala9ERFWzM5j++F6SqpOB/TclfVnOVDtztXnfSEiXD0jhw8Ongh4N4o/XShDgc8BY4EcIElEbu66nzFmpTGm0BhTmJkZ3jcklPJHuBWw6svnZuXgiZKAjwlfbw8fDPcbmJ0tnZyJ11hdQ4HkTxfKxUCpMabaGNMKPA+cH5iwlIo8m8rqiAujAlZ9yUqJZ9HEYbywpTKgixesK64hKyWOScPDa/p8b2aOHEpqQkzAh176k8APAeeKSKJYHXoXAXsCE5ZSkaeovI6CvLSI6NftsGJOHsdONfH+gcC0LNu9hvUlNSycmBn29wk680QJiyZl8u7+arwBfLPzpw98I/AssAXYaZ9rZYDiUiqidBSwioRRFZ1dfM5whsRHB2xM+O4j4T19vjdLJmVSc7o5oHVk/BqFYoz5d2PMZGPMNGPMl40xzYEKTKlIEs4FrHoTH+Ph6oIcXt99LCB1wjv6iN2++rwvFk2y+vQDWdxKZ2IqFQLhXMCqL7eeNwZBuOWRDzl5ptWvc60rrmZK9hAyU8J3+nxPMlPimJ6bypr9gesH1wSuVAiEcwGrvuSPSGHlLXM4WN3IrX/50OfCTY3NbWwuD4/V5321ND+TrYfqAjacUBO4UkEWCQWs+rJwYiYPfGEWOytPcvtjRT4tYvBhaS2t7Saihg92tTg/C6+BtQEaTqgJXKkgi4QCVv1x+bQR/Pr6GWw4eIJvPr5lwOVm1xZXExcdFRETnXoyc2QaaYkxAesH1wSuVJBFQgGr/rp2Vh7/cc00Vu2t4p6ntw9ofPi64hrmjU0nPiZyhll25YkSFk7MZG2AhhNqAlcqyCKlgFV/ffnc0Xzv8sm8vP0IP/r7zn6tn3n05FlKqk6zKIK7Tzoszc+k5nRLQIYTRgcgHqVULyKlgNVA3LlkPKebW/nDOwdIio3mh1ed0+vP3zF8cOGkyL2B2aFjOOE7+6qYnpfq17m0Ba5UEFU1NFF+4gxzB0H3SVf3XprPreeN5uH1pTywqqTXfdcV15CZEkf+8JQQReecYclxzMhLDUg/uCZwpYJos93/HWkzMPtDRPj3ZVNZMTuP3729n4fXHex2P6/X8F5JDQsnhOfq875YMimTbYfr/R5OqAlcqSAqKrcLWOX491E5XEVFCb9YMZ0rpo3gP/+xhyc/PPSZfT46eoraxpZB0X3SYcnkwAwn1ASuVBB1FLCKjR68f2rRnijuu2kmiydl8oMXdn5mFZ+1dvnYSJw+35OCvDSGJsawZq9/3SiD91WlVJBFagErX8RFe/jzzXOYOzqd7z61jdV7P1mlfX1xDZNHpJCVMniW1O0YTuhvdUJN4EoFSaQWsPJVQqyHR75SyDnZQ/jG37bw/oEazrS0UVRW9/HIjMFkSX4mJxpb2HXkpM/n0ASuVJBEcgErX6XEx/DY1+YxOj2R2x8rYuXag7S0e1kwiLpPOiyalIkIfi3yoAlcqSCJ5AJW/khPiuVvX59PRnIc971dTGx0FPPGDr5hlsOS45iRm8o7fgwn1ASuVBB4vYai8rpBOf67P4YPiefxr88nOzWeJZMyI3r6fG8W52ex7XA9dY2+DSfUBK5UEOyvaqChqY25egOzRyPTE3nn3iXcf9Msp0NxzJL8TIz5ZCTOQGkCVyoINnUUsIqQFeiDJT7GQ0Ls4Gx9wyfDCd/1sR9cE7hSQVBUVktWShwj0xOcDkW5mL+LHWsCVyoIisqs/u/BMjVc+a5jOOHOyoEPJ9QErlSAHak/S2X92YhemEAFzqKJvg8n1ASuVIAV2eO/dQSK6o+M5Dhm5KWxZv/AhxNqAlcqwIrKakmK9TB5ROSXRlWB0VGdsHaAwwk1gSsVYJvK6pg9eijRHv3zUv3TMZxw3QCHE+orTKkAOtXUyt5jp3T6vBqQGR3VCQfYD64JXKkA2lJehzHa/60GxhMlLPZhOKFfCVxE0kTkWRHZKyJ7ROQ8f86nVLgrKqvDEyXMHJnmdCgqzCzJz6K2sYUdAxhO6G8L/H7gdWPMZKAA2OPn+ZQKa5vKapmaM4SkOF0vXA3MJ9UJ+z8axecELiJDgEXAIwDGmBZjTL2v51Mq3LW0edleUa/T55VP0pNireGEA+gH96cFPg6oBv4iIltF5GERSeq6k4jcISJFIlJUXe173Vul3G73kZM0tXq1gJXy2dL8TLZX9H84oT8JPBqYDfzJGDMLaAS+33UnY8xKY0yhMaYwM3PwrbqhBo+iQbwCvQqMJflZVnXC/f1r7PqTwCuACmPMRvvxs1gJXalBaVNZLaMzEgfV2o4qsGbkppKeFNvvfnCfE7gx5hhwWETy7U0XAR/5ej6lwpkx1gIO2v+t/BEVJSyaOIy1xTX9Gk7o7yiUbwOPi8gOYCbwMz/Pp1RYOljTSG1ji/Z/K78tndz/4YR+jXUyxmwDCv05h1KRoKisFoBCncCj/LTQrk74zt6qPucT6ExMpQKgqKyOoYkxjM/8zEAspQYkPSmWgrw01vTjRqYmcKUCoKi8jkJdwEEFyNL8LHZU1HPidHOv+2kCV8pP1Q3NlNY0av+3CphPqhPW9LqfJnCl/LS53Or/nqMjUFSATM9NJSMplnf6GE6oCVwpP20qqyMuOoppuUOcDkVFiCh7seO1+6tp72U4oSZwpfxUVFZLwcg04qI9ToeiIsiS/EzqzrSyo6LnElOawJXyw5mWNnYdOaX93yrgFk3MJKqPxY41gSvlh22H62n3Gh3/rQJuaFIsBSPTep1WrwlcKT8UldUhArNHaQtcBd6SSVm9zsjUBK6UHzaV1ZI/PIXUhBinQ1ERaOlkazhhTzSBK+WjtnYvW8rrdP1LFTTTclIZ18vsXk3gSvlo77EGGlvaKdQbmCpIoqKEVfcs7vn5EMaiVETRAlYqFHorz6AJXCkfbSqvIyc1nty0BKdDUYOUJnClfGCMoaisVlvfylGawJXyQUXdWY6fatYJPMpRmsCV8kFRufZ/K+dpAlfKB5vK6kiJj2bS8BSnQ1GDmCZwpXxQVFbL7FFD8UTpAg7KOZrAlRqg+jMt7D9+Wvu/leNCmsCbWttDeTmlgmJzeR2g/d/KeSFN4Efqm0J5OaWCYlNZHTEeoSCv9xXDlQq2kCbwxpY2ymoaQ3lJpQJuc3kt03JTSYjVBRyUs0LeB/500eFQX1KpgGlqbWf74ZNawEq5QkgTeEp8NM9urqCt3RvKyyoVMLsqT9LS7qVwtN7AVM7zO4GLiEdEtorIK33tm54YS1VDM+/u73mJIKXcbFOZdQNzjiZw5QKBaIF/B9jTnx1TEmIYlhzLU5u0G0WFp6KyWsZlJpGRHOd0KEr5l8BFJA+4Cni4X/sDn5+dx+q9VVQ3NPtzaaVCzus1FJXXMXe09n8rd/C3BX4f8K9Avzu1bygcSZvX8PyWCj8vrVRolVSf5uTZVl3AQbmGzwlcRK4Gqowxm/vY7w4RKRKRourqaiZkJVM4eihPFR3G9LbYm1Ius8lewEFHoCi38KcFfgGwXETKgCeBC0Xkb113MsasNMYUGmMKMzMzAbhh7kgOVjd+PKNNqXCwuayOYclxjM5IdDoUpQA/Ergx5gfGmDxjzBjgJmC1Mebm/hx71fRskmI9ejNThZVN5bXMHTO01yWulAolR4pZJcVFs6wgh1d2HKWhqdWJEJQakGMnmzhce1brnyhXCUgCN8asMcZcPZBjbpg7krOt7byy42ggQlAqqD5ewEHHfysXcayc7KyRaUzMStZuFBUWisrqSIjxMCVniNOhKPUxxxK4iHDj3JFsO1zP/uMNToWhVL9sKqtl1qg0YjxaQl+5h6Ovxmtn5RLjEW2FK1c73dzGnqOntP9buY6jCTwjOY5Lpgznha2VtLRpgSvlTlsP1eE16Ao8ynUc/zx4Q+FIahtbeHvPcadDUapbm8rqiBKYNUoTuHIXxxP4womZ5KTGazeKcq2islqm5AwhOS7a6VCU+hTHE7gnSrhuTh5ri6s5Un/W6XCU+pTWdi9bD9VTqAWslAs5nsABri8ciTHwTJEWuFLu8tquY5xtbWfBhGFOh6LUZ7gigY9MT+SCCRk8s/kwXq8WuFLu4PUaHlxVzMSsZC6cnOV0OEp9hisSOFg3MyvqzvL+gRNOh6IUAK/vPkZx1Wm+fdFEoqK0/olyH9ck8MumjiA1IYandNFj5QJer+GBVcWMy0ziqunZToejVLdck8DjYzxcOyuXN3Yfo/5Mi9PhqEHurT3H2XusgW9fOAGPtr6VS7kmgYPVjdLS5uXvWyudDkUNYsZYre8xGYksm5HjdDhK9chVCXxKzhCm56byVFGFrtajHLN6bxW7j5zim0snEK21T5SLue7VecPckew5eopdlaecDkUNQsYY7l9VzKj0RK6Zlet0OEr1ynUJfHlBDnHRUTxVdMjpUNQgtGZ/NTsqTvLNpeO18qByPde9QlMTYrhyejYvbj3C2ZZ2p8NRg4gxhvvfLiY3LYFrZ+U5HY5SfXJdAgfrZmZDcxuv7dLVelTorC+pYdvhev5p6Xhio135p6HUp7jyVXruuHRGZyRqgSsVMh2t7+zUeK6bo61vFR5cmcBFhBsKR7KxtJaymkanw1GDwIaDJygqr+POJeOJi/Y4HY5S/eLKBA5w3Zw8ogSe1pmZKgTuf7uYrJQ4bigc6XQoSvWbaxP48CHxLM3P4tnNFbS162o9Kng+OHiCjaW1fGPxeOJjtPWtwodrEzhYY8KrGpp5d3+106GoCPbg6mKGJcfxxfmjnA5FqQFxdQK/cHIWw5Lj9GamCpqislreKznBNxaP09a3CjuuTuAxnihWzM5l9d4qNpfXOR2OikAPrC4hIylWW98qLLk6gQPcfO5o0hJjWPGn97njf4rYf7zB6ZBUhNh6qI61+6u5fdE4EmN1vUsVfnxO4CIyUkTeEZE9IrJbRL4TyMA6jExPZM2/LOWeSyax4cAJLrtvLfc8vY3DtWeCcTk1iDy4uoShiTF8+dzRToeilE/8aYG3Af9sjDkHOBf4pohMCUxYn5YcF81dF01k7b8u5faF4/jHjqNc+Js1/PuLu6hqaArGJVWE21FRz+q9VXx94TiSdLV5FaZ8TuDGmKPGmC329w3AHiCo5duGJsXyf648h3f/ZSnXF47kbxsPsfiXa/jl63s5ebY1mJdWEeaBVSWkJsRwy3na+lbhKzAZPwcAAA5YSURBVCB94CIyBpgFbAzE+foyIjWen107nVX3LObSqcP507sHWPiL1fxxTYkWwFJ92lV5krf3HOe2BWNJiY9xOhylfOZ3AheRZOA54G5jzGeKeIvIHSJSJCJF1dWBHc89ZlgS9980i1fvWsjcMen88vV9LPrVO/zvhjJa2nTyj+re71eXkBIfza3nj3E6FKX84lcCF5EYrOT9uDHm+e72McasNMYUGmMKMzMz/blcj87JHsIjX5nLs984j7HDkvi/L+7mot+u4fktFbR7dWUf9Ym9x07x+u5jfPWCsaQmaOtbhTd/RqEI8Aiwxxjz28CF5LvCMek8dce5PPa1eaQmxHDP09v5/J/ex6tJXNkeXF1Cclw0X7tgjNOhKOU3f26/XwB8GdgpItvsbf/HGPOq/2H5TkRYPCmThROG8fruYxw/1USUriqugOLjDby68yj/tGQ8aYmxToejlN98TuDGmPWAazNjVJRw5fRsp8NQLvLg6hISYjzctmCc06EoFRCun4mpVCCUVJ3m5R1H+PJ5o0lP0ta3igw6g0FFJGMMFXVnPy4Vu764hvhoD7cv1Na3ihyawFVEMMZQWtPIxtJaNtpJ++hJa5ZuWmIM88ak84X5oxiWHOdwpEoFjiZwFZa8XkNJ9Wk2HjzBB6W1fFhaS3VDMwDDkmOZPzaD+ePSmTc2nUlZKXojW0UkTeAqbJw808oLWyvYcPAEH5bWUnfGKp8wYkg854/PYP7YDOaNTWd8ZhLWKFelIpsmcOV61Q3NPLK+lL99UM7p5jbyhiZw4eThzB+Xzvyx6YxKT9SErQYlTeDKtY7Un2Xl2oM88eEhWtq9XDU9mzuXjGdqTqrToSnlCprAleuU1jTypzUlvLC1EmPg2lm53LlkPOMyk50OTSlX0QSuXGPP0VP84Z0SXt15lBhPFF+cN4o7Fo8nNy3B6dCUciVN4MpxWw7V8cd3Snh7TxXJcdHcsWg8ty0YS2aKDvlTqjeawJUjjDFsOHCC379TwvsHTpCWGMM9l0zi1vPGkJqoVQKV6g9N4CqkjDGs2lPFH9aUsPVQPZkpcfzwynP44vxRurSZUgOkfzEq5B5cXcyJxhb+85ppXDcnj/gYj9MhKRWWNIGrkBIR/nTzHDJT4ojxaC01pfyhCVyFXI6OKlEqILQJpJRSYUoTuFJKhSlN4EopFaY0gSulVJjSBK6UUmFKE7hSSoUpTeBKKRWmxBgTuouJNAD7QnZB/6UCJ50Oop/CKVbQeIMpnGIFjbc/8o0xKV03hnoizz5jTGGIr+kzEVlpjLnD6Tj6I5xiBY03mMIpVtB4+3nNou62axdK7152OoABCKdYQeMNpnCKFTRen4W6C6UonFrgSinlBj3lzlC3wFeG+HpKKRUJus2dIW2BK6WUCpxB0wcuIpeLyD4RKRGR79vbHhGR7SKyQ0SeFZFuV80VkR/Yx+0Tkct6O2eQ4xUR+amI7BeRPSJyVw/H3ioixfbXrZ22zxGRnfY5HxARCWKsF4rIFhHZJSKPiUi3N8xDHat97kdFpEpEdnXa9isR2Wu/Fl4QkbT+/qz29rEistH+OZ4SkdggxvpjEakUkW3215VuiLWXeGeKyAd2rEUiMq+HY0P9uh0pIu/Yf0u7ReQ79vbr7cdeEemxy9eJ3+9nGGMi/gvwAAeAcUAssB2YAgzptM9vge93c+wUe/84YKx9Hk9P5wxyvF8F/geIsvfL6ubYdOCg/e9Q+/uh9nMfAucBArwGXBHEWA8Dk+x9fgLc5nSsna67CJgN7Oq07VIg2v7+F8Av+vuz2s89Ddxkf/9n4M4gxvpj4F5f/l+CGWsv8b7Z8f8HXAmsccNrAcgGZtvfpwD77dfuOUA+sAYodNPvt+uXzy3wHlpd/XrnkdC3aOcBJcaYg8aYFuBJ4HPGmFP2dQVIALrrT/oc8KQxptkYUwqU2Ofr9pzBjBe4E/iJMcYLYIyp6ubYy4C3jDG1xpg64C3gchHJxnrD2mCsV9b/ANcEKdYVQLMxZr+9z1v2NqdjBcAYsxao7bLtTWNMm/3wAyCvm0O7/X+xXz8XAs/a+z0WqHi7i7WfQh4r9BivAYbY36cCR7o5NOSvBWPMUWPMFvv7BmAPkGuM2WOM6Wu+iiO/3658SuAi4gH+AFyB9Y71BRGZgtVy+Z0xZiJQB9zWzbFTgJuAqcDlwB9FxNPLOQMhF6tF2KHC3oaI/AU4BkwGHrS3LReRn/RxbI/nDGK844Eb7Y+hr4nIRDveQhF5uB/xVgQh3u6uNwKI6fTx8zpgpAti7a+vYbX0EJEcEXnV3t5TvBlAfac3gFDE+y27u+dRERnq8ljvBn4lIoeBXwM/sON1zWtBRMYAs4CNvezjut+vry3wnlqI/XnncaJF212fmQEwxnwVyMF6973R3vaSMebf+ji2x3MGQE/njgOajDWc6CHgUQBjTJEx5ut9HBuseLs7rxfrTfp3IvIh0AC0uSDWPonID7FifRzAGHPEGNPRx+yWeP+E9WY+EzgK/AZcGytYnxy/a4wZCXwXeATc81oQ697Xc8DdHZ/Ku+PG36+vCbynd59u33lc0KKtwG4B2vLo9DHOGNMOPEX3H/N7OrbXcwYp3gqsFxrAC8CMAR6b1832oMRqf+RdaIyZB6wFil0Qa6/sG2dXA1+yP6531VO8NUCafHKjNqjxGmOOG2Pa7a60h7AaP66M1XYr8Lz9/TMMLN6gvhZEJAbrb+pxY8zzfe3fiSt+v74m8O7eZbpbWryjlet0i3YTMNHuo4/Fah2+JCIT4OM+8GXA3m6OfQm4SUTiRGQsMBHrpkq35wxmvMDfsT7lACzGuunS1RvApSIy1P5ofSnwhjHmKNAgIufaP+8twIvBilVEsgBEJA74HtbNHKdj7ZGIXG7HudwYc6aH3br9We1k/w5WVxFYCSto8dr9wh2uBXZ1s5srYrUdwXq9gvX67e7NPOSvBft8jwB7jDG/HeDh7vj9+nLnE+uO8BudHv/A/qrhkzv5n9qn676dHr9h79vtOX2Jr4eYr8RKeAeAH2K9eb0H7MT6A3gce1QKsBzrZmHHsT+0j9tHpzvgXc8ZqFh7OjeQBvzDjnkDUGBvLwQe7nTs17C6pkqAr3baXmj/rAeA32PPAwhSrL/C6pbah/XRFDfEap/7Cayuh1asltRt9vUPA9vsrz/b++YAr/b1f441GuFD+zzPAHFBjPV/7dfADqw39mw3xNpLvAuAzVgjNTYCc9zwWrDjMvbvseP//UqsN8UKoBk4jp2X3PD77frl00Qe++PBfuAioBLr3eiLWMObnjPGPCkifwZ2GGP+2OXYqcD/w/oYlQOswmrVSnfnNMbsHnCASik1CPjUhWKsfu5vYbWe9wBP24n2e8A9IlKCdTf2Efh0H7i939PAR8DrwDeN1Z/X0zmVUkp1Q6fSK6VUmBo0U+mVUirSaAJXSqkw1e8E3sPU+W/Zj42IDOvl2DUicsgettOx7e8ictq/8JVSavDqVwLvZZr7e8DFQHk/TlMPXGCfLw2rkIxSSikf9bcF3lMxqK3GmLJ+nuNJrMHuAJ/nk5lZiEiyiKwSq/zoThH5nL39P8Qu8Wg//qn0UEJVKaUGm/4m8EBMc18FLLJb8zdhTV3v0ARca4yZDSwFftNpltStACISZR/3+ACvq5RSEam/q9IHYpp7O7Aeq2BUgjGmrHOXOPAzEVmEVQgpFxhu73NCRGYBw4GtxpgTA7yuUkpFpP4m8AEVbhKRN7ASbudqY2B1o7yANWOzsy8BmVhTbFtFpAyIt597GPgKVonSR/sZr1JKRbz+JvCPC7dgTXO/CWvqfLeMMZf18NQ64L+w6iV0lgpU2cl7KTC603MvYK3oEtPbNZVSarDpVx94T9PcReQuEeko97ijU3H2ns5jjDG/NsbUdHnqcaBQRIqwWuN7Ox3TglXd62ljlX1VSilFGEylt29ebgGuN8Z0V4ZSKaUGJVfPxLTHmpcAqzR5K6XUp7m+Ba6UUqp7rm6BK6WU6pkmcKWUClOawJVSKkxpAleDjoiMEZE+5xR03U9ECkXkgeBGp1T/aQJXYc1en3WgxtC/SWGf2s8YU2SM0WJqyjV0FIpyPRG5BbiXT1YQbwdqgVlYcwT+DXgQmI41u/jHxpgXRWQM1gruSfapvmWMeV9EPgDOAUqBx4AHgJ8DS4A44A/GmP/uZr+twL3GmKtF5MfAWKyyyJOAe4BzsUouVwLL7JnFc4DfAslADfAVY8zRwP+W1KAUrOXu9Uu/AvEFTAX2AcPsx+nAX4FXAI+97WfAzfb3acB+rKSdCMTb2ydi1eYBK1G/0ukadwA/sr+PA4qwknPX/T5+jFXPZz1WiYcC4Axwhf3cC8A19nPvA5n29huBR53+nepX5Hz58vFTqVC6EHjW2OUXjDG1dhXLZ8wnpRUuBZaLyL3243hgFFbBtd+LyEysVvukHq5xKTBDRK6zH6diJfyWPmJ7zVit7J2AB3jd3r4Tq/slH5gGvGXH7AG09a0CRhO4cjuh+9LFjV32WWGM2fepA61ujuNYLeQorLrzPV3j28aYN7ocv6SP2JoBjDFeEWk1xnTE6cX62xJgtzHmvD7Oo5RP9CamcrtVwA0ikgEgIund7PMG8O2ONVft+vFgtaSPGmO8wJexWsAADUBKl+PvFJEY+/hJIpLUzX4DtQ/IFJHz7PPGiMhUP86n1KdoC1y5mrGqXv4UeFdE2rFuJHb1H8B9WBUxBSgDrgb+CDwnItdjVbTsaLXvANpEZDtWf/r9WF0eW+zjq7H6sLvu1921e4u9xe6WeUBEUrH+3u4Ddg/kPEr1REehKKVUmNIuFKWUClOawJVSKkxpAldKqTClCVwppcKUJnCllApTmsCVUipMaQJXSqkwpQlcKaXC1P8HdwvomRbdEKIAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df2['count'].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmMAAAEmCAYAAAAutZc/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deZxcZZX/8c9JQgghAQIEZG+WALLJ0mIAEQYQERBwRBZBRdSMzg9cERGdYRxEcdBREUfMuAEqIDuyCOiIDgzKhEUWAVFZRJCEZWRTtpzfH89TUrQd0n3XOlXf9+tVr6RuVb735Nxb1U/f1dwdEREREWnHhLYLEBERERlkGoyJiIiItEiDMREREZEWaTAmIiIi0iINxkRERERapMGYiIiISIsmNTmzFVdc0YeGhpqcpYiIiEgh11133UPuPrPu+TQ6GBsaGmLevHlNzlJERESkEDO7p4n5aDeliIiISIs0GBMRERFpkQZjIiIiIi3SYExERESkRRqMiYiIiLSo0bMpRUSkfUNHXTzm9959/B41ViIiMIYtY2b2TTObb2a3dE07wcxuN7ObzOw8M1uu3jJFRERE+tNYdlN+G9htxLQrgE3cfTPg18DHKq5LREREZCAsdjDm7j8DHhkx7XJ3fy4//Tmweg21iYiIiPS9Kg7gPxS4tIIcERERkYFTajBmZh8HngO++xLvmWNm88xs3oIFC8rMTkRERKTvFB6MmdnbgT2Bg9zdF/U+d5/r7sPuPjxzZu332hQREREJpdClLcxsN+CjwA7u/lS1JYmIiIgMjrFc2uJ04BpgAzO7z8zeCZwETAeuMLMbzezkmusUERER6UuL3TLm7geOMvkbNdQiIiIiMnB0OyQRERGRFmkwJiIiItIiDcZEREREWqTBmIiIiEiLNBgTERERaZEGYyIiIiIt0mBMREREpEWFrsAvIiIivWHoqIvH/N67j9+jxkqkKG0ZExEREWmRBmMiIiIiLdJgTERERKRFGoyJiIiItEiDMREREZEWaTAmIiIi0iJd2kJEpMeM51IFoMsVSH20LjZDW8ZEREREWrTYwZiZfdPM5pvZLV3TljezK8zszvznjHrLFBEREelPY9ky9m1gtxHTjgJ+7O6zgB/n5yIiIiIyTosdjLn7z4BHRkzeGzgl//0UYJ+K6xIREREZCEWPGVvZ3R8AyH+uVF1JIiIiIoOj9gP4zWyOmc0zs3kLFiyoe3YiIiIioRS9tMWDZraKuz9gZqsA8xf1RnefC8wFGB4e9oLzExGRAMZzKQRdBkEkKToYuxB4O3B8/vOCyioSERHpMxqkyksZy6UtTgeuATYws/vM7J2kQdhrzexO4LX5uYiIiIiM02K3jLn7gYt4aeeKaxEREREZOLoCv4iIiEiLNBgTERERaZEGYyIiIiIt0mBMREREpEUajImIiIi0SIMxERERkRZpMCYiIiLSIg3GRERERFqkwZiIiIhIizQYExEREWmRBmMiIiIiLdJgTERERKRFGoyJiIiItEiDMREREZEWaTAmIiIi0iINxkRERERapMGYiIiISItKDcbM7INmdquZ3WJmp5vZlKoKExERERkEhQdjZrYa8D5g2N03ASYCB1RVmIiIiMggKLubchKwlJlNAqYC95cvSURERGRwTCr6D939D2b2OeBe4M/A5e5++cj3mdkcYA7AmmuuWXR2IiIi0keGjrp4XO+/+/g9aqqkfWV2U84A9gbWBlYFljazg0e+z93nuvuwuw/PnDmzeKUiIiIifajMbspdgLvcfYG7PwucC2xbTVkiIiIig6HMYOxeYLaZTTUzA3YGbqumLBEREZHBUOaYsV+Y2dnA9cBzwA3A3KoKExER6aZjjKRfFR6MAbj7McAxFdUiIiIiMnB0BX4RERGRFmkwJiIiItIiDcZEREREWqTBmIiIiEiLNBgTERERaZEGYyIiIiIt0mBMREREpEUajImIiIi0qNRFX0VEBpWuBi8iVdFgTEREBp4G19Im7aYUERERaZEGYyIiIiIt0mBMREREpEUajImIiIi0SIMxERERkRZpMCYiIiLSolKDMTNbzszONrPbzew2M9umqsJEREREBkHZ64x9Cfihu+9rZpOBqRXUJCIiIjIwCg/GzGwZ4DXAIQDu/gzwTDVliYiIiAyGMrsp1wEWAN8ysxvM7OtmtvTIN5nZHDObZ2bzFixYUGJ2IiIiIv2nzGBsErAl8FV33wJ4Ejhq5Jvcfa67D7v78MyZM0vMTkRERKT/lBmM3Qfc5+6/yM/PJg3ORERERGSMCg/G3P2PwO/NbIM8aWfgV5VUJSIiIjIgyp5NeTjw3Xwm5e+Ad5QvSURERGRwlBqMufuNwHBFtYiIiIgMHF2BX0RERKRFGoyJiIiItEiDMREREZEWaTAmIiIi0iINxkRERERapMGYiIiISIvKXmdMREREpOcMHXXxmN979/F71FjJ4mnLmIiIiEiLNBgTERERaZEGYyIiIiIt0mBMREREpEUajImIiIi0SIMxERERkRZpMCYiIiLSop64zlika4GIiIiIVElbxkRERERaVHowZmYTzewGM7uoioJEREREBkkVW8beD9xWQY6IiIjIwCk1GDOz1YE9gK9XU46IiIjIYCm7ZeyLwJHAwkW9wczmmNk8M5u3YMGCkrMTERER6S+FB2Nmticw392ve6n3uftcdx929+GZM2cWnZ2IiIhIXyqzZWw7YC8zuxs4A9jJzL5TSVUiIiIiA6LwYMzdP+buq7v7EHAA8F/ufnBllYmIiIgMAF1nTERERKRFlVyB392vBK6sIktERERkkGjLmIiIiEiLNBgTERERaZEGYyIiIiItquSYMRGRXjR01MVjfu/dx+9RYyUiIoumLWMiIiIiLdJgTERERKRFGoyJiIiItEiDMREREZEWaTAmIiIi0iINxkRERERapMGYiIiISIs0GBMRERFpkQZjIiIiIi3SYExERESkRRqMiYiIiLRIgzERERGRFhW+UbiZrQGcCrwMWAjMdfcvVVVYVcZzo2DQzYJFRESkWYUHY8BzwIfd/Xozmw5cZ2ZXuPuvKqpNREREpO8V3k3p7g+4+/X5748DtwGrVVWYiIiIyCAos2Xsr8xsCNgC+MUor80B5gCsueaaVcxOepx2DYuIiIxd6QP4zWwacA7wAXd/bOTr7j7X3YfdfXjmzJllZyciIiLSV0oNxsxsCdJA7Lvufm41JYmIiIgMjjJnUxrwDeA2d//36kqKQ7vjREREpKwyW8a2A94K7GRmN+bH7hXVJSIiIjIQCm8Zc/erAKuwFhEZQOPZwqytyyLSj3QFfhEREZEWaTAmIiIi0qJKrjMmIv1LJ6qIiNRLW8ZEREREWqTBmIiIiEiLNBgTERERaZEGYyIiIiIt0gH8In1AB9mLiMSlLWMiIiIiLdJgTERERKRFGoyJiIiItEiDMREREZEWaTAmIiIi0iINxkRERERapMGYiIiISIs0GBMRERFpUanBmJntZmZ3mNlvzOyoqooSERERGRSFB2NmNhH4CvB6YCPgQDPbqKrCRERERAZBmS1jWwO/cfffufszwBnA3tWUJSIiIjIYygzGVgN+3/X8vjxNRERERMbI3L3YPzR7M/A6d39Xfv5WYGt3P3zE++YAc/LTDYA7xjGbFYGHChWo7F7MV3bz+cpuPl/Zzecru/n8Qcley91n1lTLX00q8W/vA9boer46cP/IN7n7XGBukRmY2Tx3Hy5WnrJ7LV/Zzecru/l8ZTefr+zm85VdrTK7Kf8XmGVma5vZZOAA4MJqyhIREREZDIW3jLn7c2Z2GHAZMBH4prvfWlllIiIiIgOgzG5K3P0S4JKKahlNod2byu7ZfGU3n6/s5vOV3Xy+spvPV3aFCh/ALyIiIiLl6XZIIiIiIi0ayMGYmdX2/zYzi5id8+vsi3recL563l/U8/4SueeRa69Tmb4M1GDMzCYBuPvCGrKn579OjJSd8+vsi3recL56vsj8lc1siplVfs2gmrPV8/7KjtzzOtfFkMsz55fuy8AcM2Zm+wGvAV4FfB34JXCruz9eQfZBwO7AhsDZwF3AT939gV7Ozvl19kU9bzhfPV9k/iHAm4AZwDXAI8DZ7n5nj2er5/2VHbnnda6LhxBweeb8SvoyEIMxM1sKuAfYC1gV2IW0VfAXpIXyuJmZF2hGzr4X2BFYCdgyz+MR4Bx3v70Xs7vy6+yLet587er53+ZPyfnbAUsB6wJbkK7EfZ67X1Gi9jqz1fP+yo7c8zrXxZDLM+dX1xd37/sHMBu4aMS0NwFnAV8umb0+cP6IadsDnwW+BkzoxewG+qKeN1+7ej56/srA97tzSLdmew/wDWCZHs1Wz/srO3LP61wXQy7PqvsyKMeM3Qw8Y2bHmNlaAO5+DvBeYD0z26ZE9j05+1tm9oqc/d/AsaQR8l49mg319kU9bz5fPR/dw8BTwBVmtkPOv4O0G3dJ4KAezVbP+ys7cs/rrD3q8oQK+zIQgzF3fxI4grQZcX8z28HMVnH3h4A/A5uWyH4aOJi0n/hAM3u7ma3j7k+QVoI1XjKgpeycX2df1PPma1fPR89/zt0PAc4E3pIHqxu7+3Ok78ClezRbPe+v7Mg9r3NdDLk8c35lfenrY8bMbH3SDcy3II2EVwHeAUwDlictjPWAYR9nI8xsE2AzYGvgP0gLdTtS818FPEbaRDq7l7Jzfp19Uc+br109Hz1/S9KxHFsC3wL+QjpWZFNgP9JvtTOA7QvUXme2et5f2ZF7Xue6GHJ55vzK+9Lvg7GbgCtIC+F1wOeBk/PzlYHVgF+6+28KZN9J+sE3BAwDFwDnAw8BS5D2Jd/q7n/speycX2df1PPma1fPR8+/B/h0zh8Cfks6meHnpC/nDYBfu/tjPZatnvdXduSe17kuhlyeOb/6vniJg9d6+QHsD1zW9Xxd4Bzg18CuJbN3A37Y9XwN4AvA1cCBvZrdQF/U8+ZrV89Hz58NXNr1fGXgQ8AZwHt7OFs976/syD2vc10MuTzr7Euponr5AWycm78xMLFr+gGkH1YzSmSvBVxKOjhvatf0PYGrgHV6MbuBvqjnzdeuno+evzJwJfD+7h6QrsF2E2mXbS9mq+f9lR2553WuiyGXZ5196ecD+O8gbR14P+l4GcxskrufQTqGZvuiwe5+D3A6sCuwrZmtaGaT3f0i4HekkXnPZWe19aXO7Mg9rzlfPR89/0HgaNJuhDea2aZmtqS7/wz4H2DzHs1Wz/srO3LP61wXQy7PnF9LX/r9mLEpwCeAN5K2HlwLLAccB2zj7gtKZE8mHSS9DzAPeBBw4MM5+8FezM75dfZFPW++dvV89PyJpF0Ke5Muwrgk8Gie5zZe8BidBrLV8/7KjtzzOtfFkMsz51fel74cjJnZBHdfaGZLu/uTZvZy4DDgOWAycI27n1oyeyXSwXprkc7OMGAF4Cp3v6DXskfk19kX9bz52tXz0fPXIX0BTyGdWTUZWBP4mbv/tIez1fP+yo7c8zrXxVDLc0R+9ct0Ufsv++EB/CuwbtfzqRVmHwVsVFPdtWU30Bf1vPna1fPR898HbB4wWz3vr+zIPa9zXQy5POvqS19tGTOzDYEnSD+Mfm1ma7v7XfkYmufMbE13v7dg9mzSFodpwM+A6e7+p67sLd39erPx3+eqzuycX2df1PPma1fPR89/PTAp53/f3Z/P0zv5u7j7j8ab20C2et5f2ZF7Xue6GHJ55pxalyn00W5KMzuadLbEcqQ7s/8ZuNDdf55f3wlYy92/VSD7n0ibOh8FFpAuFnequ1+SX38VaRT+tV7Kzv++zr6o583Xrp6Pnn8MsANwPen6ahuR7sd5Wn59E2BHdz+px7LV8/7KjtzzOtfFkMsz//tal+lfeU2b8Zp8kPbV/pF0V/aVgV2AI4GvAHvn96wBrFQgewbwe2BZYCowCziUdKD0B0gXeJsJLNdL2Q30RT1vvnb1fPT8ZYE7gdXz8yVJp51fAXyJNHCdBizdY9nqeX9lR+55netiyOXZxDJ90bzKBvTCg3TLl7M7CyRPWx14O+mquGuUyJ5MutLuZl3TppFG4t8DNu7F7Ab6op43X7t6vuh5fJYRF7klHbA7l3TLk57LVs/7Kztyzxv4Xgy3PJtapp1HX1xnzN0fIV1r6btmtn+edp+7n0K6B9W+JbKfAW4HzjGz9+dpT3g6I+N24O1mZr2WnbPq7It63nzt6vmi/RI41cyO65rvvcCNwLvNrMx3XS3Z6nl/ZUfueQO1h1ueOaeJZQoQfzBm6XoiuPvRpN0125nZF81st/yWjYGnC2ZPzdmfI92ZfWMzu9DM9jezJUjH7vze83C5V7Jzfp19Uc+br109Hz1/Rs7/HukecWuY2S1m9m5LN1DfF7jO3Rf2WLZ63l/ZkXte57oYcnnm/FqX6d/Mr6KcVpjZHqQD67YBvgr8gXRdkXWAQ4A/AQ+7+wEFsvchXTBuQ9JtZe4mXV13iHRa613AE+7+zl7Kzvl19kU9b7529Xz0/P2AA0nH0l1LOnbkItL9OY8BbgUWuvsHeixbPe+v7Mg9r3NdDLk8c36ty3TUeUYdjJnZJOA+4G3AasCrgcdId2W/3N0fNbM1gQfc/dkC2feTDgRcibTVYXnSRd5Oc/f7zWwFd3+4YN21ZHfl19kX9bz52tXz0fP/QLrK9hTSiQtbAsuQzqS6zcyWcvc/92C2et5f2ZF7Xue6GG55duXXtkwXySs6+KzpB2krwUVdzycBbyUd4PzZktkbAOd3PZ9AOnPtBOCkXs1uoC/qefO1q+ej568CnNX13Ehfmv8P+E9gqR7NVs/7Kztyz+tcF0MuzyaW6SLnW1dw3Q9gOnAh6Z58q3VNHwJ+AswukT0FOC8v2A27pq9EOmV2r17MbqAv6nnztavno+dPAr4L/BB4Zdf0acBZwJwezVbP+ys7cs/rXBdDLs8mlumiHmEP4Hf3x0n7hmcC+5nZtnnT4d2kazG9okT2X4B3Aw8Ah5jZAWa2qrvPz9PW7sXsnF9nX9Tz5mtXz0fPf87dDyJ9Of6jmR1pZkPu/gTwOOn6QL2YrZ73V3bknte5LoZcnjm/1mW6KGGPGesws61Iu20gLYSFpDMrht290NllXdmrA28iXctpS+BhYH3gVb2cnfPr7It63nC+ev43uebubuks0z2B2cAepAN51wK2K5pfZ3bXPNTzPsjumke4ntdZe/TlmedT68+Lv5lftMGYWbqmR14YW5O2DswnHdi8kHQw3zx3v7XkfHYmNf9WYD3ASfuSb/AC9/3rrEB1ZHfyoZ6+WL5Tff57mJ43kd31xVDLMq1peda2Lo5YD2tbnnle+5BOZriStDt3Ss6/1YsddNzdl0qzu/OjfbeMmFflfakzu6vnYZZnd3b+e+XrOdT/GY32+eyeR92fo9FMqiO0Tp2Fkb0CeDRvVix8E9BFmAbc6+kMtdvytNuLho2oe5kqs0fJ34R0qYNK+uLuCy1dOK9zoORDVWSb2bS8abljOum6LaX7Yuk6Mw93fTCnA/dV1XMz2wF40N1vz19ula4vZjbV3Z/KTzcBHqlweXavK8sBf6hpXZxRdfYIjwDz8y8Kf8qPB0vkGelLF9J96B6sKtvMluz6bbqy9Rxe6HdeD6dT7Xr4MtJ3bKf2R4AFVfTFzIZJZwH/oSv7oYqy9wT+6O7zurIrW1fMbHlPF2GGir9bRvEYFa6L0NhnNMznE+r9jI6J13AgWh0P0sj3H/LjSGDVrtcm5D8PBCYVyLaRfx+ZQ74PVYHsJUm3q/lH0oXjlqwqO//bpYD3AR8BDsrTplfUl6VJB0qu1TVtxYqypwHfBJYZpfed7KI9n046uHOzTlbXaxMr6PnSpE3in+uaNrmi9WUq6aydk4EjOtNG1F6051NI91V7G3AEsMoovS9T99Gk49u+Aqzd9Vqp5dn5v7OY+8sBnwGWLJC9FPAh4F/z/2HZCrOn5p58nnQSxoSufpRdz6cBl5FuUlzpetiVfwawwiivdWov2pdpwE+BrWpYnkuT7id4Ruf7quLsk4ELgJO6v18q+m5ZivRdfiTwZWCowp7X9hmN+vns6kstn9HxPCIdwP/vwOtIN+xcEbjMzI7p7EKzdGf2Se7+XIHsr5rZKWa2kufOd+fkfceP+Div45T9G7AP6aC/V5HO/qgqG+DTpF1Xy5Cuyj4VWCFvbi3bl51IP/hvNLO5OfOhirI/CTzl7o+Z2ZRc9xZd2auTfksu0pdPA79195uAaWa2kZm9K68rz5fMBjiWdFuil5vZV3LNz3ReLJn/KdKp2z8mXVF6OeDVXbWX6flnSadoG+niiFeY2Ye7Ns2XqfsE0pbqXwJPANeZ2Uldn8+yPT8ZOMXMhs1sSvcLZjbRzKYBt3mxYzk+TTru5H7SDdj36Mq2nP2rgtmfIt1c+DrS/fJWBIYr6stGwGuBM83sq2Y2092fMbOVcu1le/6vpC1XD5vZ0mY208x266p9GnBLiZ7f7O7XmdkMM9vOzI42s5m59jLZxwL/TdrNdEJnt1yHmU0vmT0R+DhpK81aZvbWCr9bPkPaEn4VaVBws5l9pqKe1/kZjfr5hHo/o2NX50ivqgfpTLJbgeXzcwM2B75D2rqyMunu6UW2FqxLOh7nB6TNkR8i/4aTX59cou6Xk1aSzvMPApeT7/DePZ+C+RuS9mF3nv+CdLXgk/OfG5B2RY+7LzlvKdJvBK8mbSGbT/qN8MxObwr2fH3SFYzXzs+PJZ2SfBbpt9lZeRlbgewlSTeI3SM//z7pRq+X5/pf31mHCvZkE+Da/Pfl83pz+MjMgrWvRvoB1Xk+j3SK9QWkL4rZpB8ERXq+KulLvPN8C9KNbs8nfdlNKtHzGaSrYG/QNW3lvA7+NK+nhbJz1hBwb9dy/DjpOI4l8+uFf2PN62L3Z3Rf4GryTdcryP5l1/MbgHOBU4HrSQcCl1kXlwA+CryZtJXmNtJVyH/QyS2R3fle3DI//1z+bF6cl/XWJfoykfQD8OD8/FzSVqBLSFc5P6BE9kakYyk73wWX5Oxl8rQJJbJfRrrf4cz8/HrS9f4uAxYAu5dcnivn/M6W8OVJl1e4EjiTUbZQjiO7ts9o1M9nV35tn9HxPEJsGXP3BaQfSm/Iz93dbyTtanmatKn7WeD5AvEzgaPc/Q2kXTh7A9eY2d759U+Z2S4FS9+atLus8//4AvAUaQUA+IiZvbJgNqQfzv8BYGbb88Lg6d9IV23fwtMWlHH3Jf9W8GfSvviDPZ1K/FbSlpVhM5vtaWtQkZ6/gjQYm21mHyH9dn8U8DHSgGmLvIx9vMGefju6FNjWzNYg3RLjXe6+K6k3s/P7xp2d/T1wWs54BPgasIeZ7d6dWTD/MeAWM9vHzA4lfYEenOf5XWBbd3/ei20Vewz4jZntlJ8/QNrl8jHSoH3jEj1/NNe3Z9e0B939TaRroQ0Xzc6mAB9w93eRPvPrAycCB+XXv25mRW+SPos0YO/UfTbp2JCN8qQyn//1gePhrye+PEn6jjmE9ENwqzzPQn3J33nzgNe5+2HAe0n3y1vbzHYt2fPVSVtnX2NmXwC2Bw4jfT9eSDq7rBB3f5507ONr8nFjz7r74e6+e57HDpbvxVrAjqRdcJ3vgo+QPkednx2F7lOYzQd+Brwpf29Nd/d93f11pF+0X53nUbTn80m/UHfWtxVI17bak3SM1MuLFp4/o98j9yFPq+ozuhTwwZo+n+tT3+cT0ndfbZ/Rcal7tFfVA9iZ9AP8dF58vNi7gdNLZs8Y8fxQ0gj5OuB3JbNXzX8ukf88hnSl4HWB/62gL51jfbbgxRfAezdwSkW9P4606+wDpN/U3kHXVpaCmdsBX8x9fkPX9DnAt0tmr04aBF9P1xWZgR2Aq2pYNw8hbZX4+wqy3grcTNoS8Zmu6fsCV5TMPhS4hfSb8DnAJ/L0fyJv3Sux/g2TBgYX8OJj0fYDLqugL8vy4uNz3kjaknoVaZd0mexV6doqQDq+81jSQO0XJbM7xxGtRxrwdqYfAJxX0fr3EWBT0oDgP/O68tMKcjfOmZeO+Iy+BTi36PqSH9NIW/Avy8txw/z65uQtW1U9SIeJ3JX/L0WP5eqsG28gbQ0/Ejix6/VdgKtL1NjJ3490IPqPSFvdPpanfwg4rmQftiJtHav8M0o6TKZ7z0CVn89V8p+d47cq+3yOyJ1V12d0THU0NaMSjVqb9BvCRNII/JOkTdmfJ21RuZG8ubtA9rqk/cOrL+L1p4EDC2avl+tebcT07Um/cf4P8JYSfVkv177WiOmdD/UlJWpfO2evk5/vSPoh/n/kTeUU3MXa1ZfOSQYbkw6g7NR9aQV1T8vPP0raIvRF0talq4pm57xZOX9olNcOJu1KmFEwex26dkOQdgH/mDR4X4G0q6LQ7ptONukH4LKkH9azul7/eZl1sXvdI+0uezh/Pt9DGhAX+nwuYr2eOGL6U1XUPmIes0g/tG4qs76MVm/X9B8WXZ7d60j+c1vgN3ldL/X5XMR8NiHvOquq9q715cO5z18gDSp/VkHP/2Y3PmmL4Vks4ru+wDyWJO22PYEXjvEq3ZOcPYG0BXLlrmn/Sz5Bq0De6p2s3POvVvUZJR1jtTIvfJ+PPIGk8OeTdM2wlXnh+3xS/rOSz2dX/jKLeL2S9Xysj56+zpiZfRDYlbTv/FrSfvmzSJsS/5m0K+5Rd/9SiewZpIHRk6RR8PX59VcBH3b3/SrKPtfdb8iv35Lr3n682YvIfyrXfl1+/RPADu7+2gqyHyN96WwGPOPu5484BbhI9vKkzfEPk/pyc9fru3na7F82ez7p2LGFwOHAPaTdIaeNN3tE/qLWl+WBt3vaFV229j8B3yD9AvJ10oHC17r7USWzryHd7PZcd/9Vfv0twN7uvn+B7H2Bp939ByOmD5G2cN6bX//WeLNHy7d0eRX8hWvebQJ8xN3fXlG2e+cnltnFwBR337nKui3dhPh9wM7uvsdLxIwpu2v6LqQfWueb2RRPl0EZt0Xld70+h3Q85t6jvV6w9peRBh/3kwbEF5bNzgftW9e6Mg3Yx92/U0W2u7uZrQmcQtrlf5u7Hzve7NHyR7w2CevtrX0AABCOSURBVNgd2Nfd31Yg+3DS538d4Pvu/sk8fYi09+T3FPyMdmWvTdo7ddyI1zcmfT4PqSH7YtIxaYV2Ub5Uft5F/n4KfkaL6tnBmKWzyO4g7SefRtpHvBVpJH6qu19tZhM9HX9QRfaWpN8gLnH3i/JZPc/7C9eSqSL7Unf/QT5u5yFPZ/vVUftWwGPufmcF2cOkXZRXuvtZ+X1/vfheyeytSAetd+p+BfCku/+mguxXki6Mepq7//d48saY/6KeV5zdWc/PcPef5IHe//k4j3cZkT09/zlM6vnFuedrkb6M/zjO7BVJW6jvIV3m45jOoLoKi8vPP2wnkAZMT1aV3XUG1aakwfu4ri00lr7kH4QLfZwXj1xM3eP+TBasfQ3SoPW+qrPrqtu6LlpddXZD+dNJW4UeLZB9NWmr4IqkPQQ3ko6RLnKs7+Kyr+v+hdHMliBtKSvy+Vxc9ubAX8b7+RxH/rqkz38tF3gdVZHNaU08cpPOIp9BmacNkY57OYeuTbgVZ59ZY/b36dpXX1PtL6sh+52krWN19ryOug8lHXdRuO4W15d35trr6kvZut9B2vLYuUZPZ1fTjPz6a+m6jlEN+btQcJfTGLJ37e5ZDX2ZWXF25yzzXRhx2EINta9U4/Jcp8bsQuviGHsyVHPPVy2Y/QlgbtfzNUiHgXSyty6xPMeSXfSQjcVlv4qC1xQbR/7UovmF62p6huNs2udIx8q8YcT0k4H3DWJ2i7V/tZf70qc979ls0i7UDXlh6/qGpMvMXEu6VtLvWMSxGBXm/83FH5UduueFao+a3UDP1yNfEJgXTiA7j3TIyUp5HtMGKbuJ/MJ1NT3DAo07hPSbw2eBV+dpFwHvH9TsyLVHzY5ce9XZvMQ1d0i7b58jnwXWa/nK7q/ao2Y3kZ9zOtf66pwx+EnSlqFTSbsrBy67ifwij14+ZqxzkOSypBXzlaRTTReQjnHZa9CyI9ceNTty7XX3ZRHz3AH4srtvVnV23fnKbj5f2c3mm9l6pLsT/M7dt1N2M/ljqqFXB2MjmdlkT7f6WJd0Y9NCZwv1U3bd+cpuPj9qdtc8XkM68eXqqrPrzld28/nKbj7fzL4FnO/uFyi7ufzFzj/KYExERESK6dpSPt3dH1d2M/lj1TO3QzKzZSzdZHS6spvJV3bz+cpuPl/Zzecru/n8xWV73vJSZMARNbuJ/Kr0zJYxM7uUdEuFb5AufPlrz3dJt3w9MSt4PZeo2ZFrj5odufao2ZFrj5odufao2ZFrj5rdRH5VemLLmKVjWJYn3ch0NvAPwN55OqQLVlJwQYfMjlx71OzItUfNjlx71OzItUfNjlx71Owm8ivlLZzCOfJBurbH7Pz3ZYDDgNOAT5GuGH4jcMggZUeuPWp25NqjZkeuPWp25NqjZkeuPWp2E/lVPnpmN+VIZrYR8HrSqfgT3H2rQc+uO1/Zzecru/l8ZTefr+zm85XdTn5RrQ7GLN0E9UDASPflO9PdHx7xnieBN7r75YOQHbn2qNmRa4+aHbn2qNmRa4+aHbn2qNlN5Neh7WPGPksana5Nug3ET8zsiM6LZrYm8MmCzYqaHbn2qNmRa4+aHbn2qNmRa4+aHbn2qNlN5Fevrf2jwArA7eSb5pLu0bUN6Sbgc4GZpFHthEHJjlx71OzItUfNjlx71OzItUfNjlx71Owm8ut6tLZlzNMmw3OAHfLz5939GuBwYCHpRp7uBc5yiJodufao2ZFrj5odufao2ZFrj5odufao2U3k16Xt3ZS/AE40s5Mt3T8Pd78fuIF0c+NBzK47X9nN5yu7+XxlN5+v7Obzld1OfuVaHYy5+4XApsAkYJ6Z/YuZbQe8E/ivQcyuO1/Zzecru/l8ZTefr+zm85XdTn4d2j6bcqK7P5//vjHwT8BdwBPuftwgZtedr+zm85XdfL6ym89XdvP5ym4nvw6T2i4AwMy2Bl7m7gdYxbcliJpdd76ym89XdvP5ym4+X9nN5yu7nfwqNbqb0szWM7MlOs87I1fgOGDyIGbXna/s5vOV3Xy+spvPV3bz+cpuJ78JjQ3GzGwL4JujTJ8FPOzuZ0Ph+1uFzK47X9nN5yu7+XxlN5+v7Obzld1OfmO8oWtoAOcB/5D/vgawNXAosEbXe4peVyRkduTao2ZHrj1qduTao2ZHrj1qduTao2Y3kd/Uo5mZwE7AnZ3m5OadBZwEXAxsM2jZkWuPmh259qjZkWuPmh259qjZkWuPmt1EfpOPpg7gXwhcB7zTzNYFnnX3/cxsGeCjwFbANQOWHbn2qNmRa4+aHbn2qNmRa4+aHbn2qNlN5DemkWPG3P1KYA5wH7A88Jk8/TFgPrD5oGXXna/s5vOV3Xy+spvPV3bz+cpuJ79JtV5nzMymArvmp/OBm4G/uPuz+fXlgB8Bc9z9+kHIjlx71OzItUfNjlx71OzItUfNjlx71Owm8ttQ92DsdMCAqcCvgWWAnwLnuPtfzOwY0jVA3jso2ZFrj5odufao2ZFrj5odufao2ZFrj5rdRH4bahuMmdkQcKm7vzw/34y0yXBz4AZ3P83MJgKT3P3pQciOXHvU7Mi1R82OXHvU7Mi1R82OXHvU7CbyW+M1nRkATAcuAd7YNW1pYG/g58C2eZoNSnbk2qNmR649anbk2qNmR649anbk2qNmN5Hf1qPe8NSci4GPAat3Tf8E8LFBzI5ce9TsyLVHzY5ce9TsyLVHzY5ce9TsJvLbeNR+o3Az2wl4HbAy8FvgjNzEj7r7eYOYXXe+spvPV3bz+cpuPl/Zzecru538pjUxGJsArANsALyZtDnxWnc/YVCz685XdvP5ym4+X9nN5yu7+Xxlt5PftNou+mpmBkx296fNbBrwjLsfYmaT3f2ZQcyOXHvU7Mi1R82OXHvU7Mi1R82OXHvU7Cby21LpRV/zSBUzm+hJ50yGU4EnAIo2K2p25NqjZkeuPWp25NqjZkeuPWp25NqjZjeR3wsq2zJm6fTS/c1sMnCfmd3i7j82sy2Bee5e+JYEUbMj1x41O3LtUbMj1x41O3LtUbMj1x41u4n8XlHZMWNmdiNwIvA8sD0wC7gSOAW4z92fMbMJ7r5wULIj1x41O3LtUbMj1x41O3LtUbMj1x41u4n8XlHJbso8Qr3f3b/p7qcAnwMeIG15262z+bDggg6ZHbn2qNmRa4+aHbn2qNmRa4+aHbn2qNlN5PeSqo4Zux9Y1sw+bOmAug2AycD3gPfkzYyDlh259qjZkWuPmh259qjZkWuPmh259qjZTeT3jEoGY+7+R+AoYC1gHnAwcIK730q6WecrBi07cu1RsyPXHjU7cu1RsyPXHjU7cu1Rs5vI7yle7iq4E7r+PhlYCRgCVsjT1gF+BQwNSnbk2qNmR649anbk2qNmR649anbk2qNmN5Hfi4+yZ1MeZmZ/BH7i7guA+SNePwg4193vHqDsuvOV3Xy+spvPV3bz+cpuPl/Z7eT3nMJnU5rZPsC5wOeBR0k36LzKq7moW8jsuvOV3Xy+spvPV3bz+cpuPl/Z7eT3qjLHjK0FHAn8AJgK7AW8t3NAnZm9w8wmmJkNUHbk2qNmR649anbk2qNmR649anbk2qNmN5Hfk8psGZsGLOHuj5rZcsBuwCuB/wM2AbZ091mDlB259qjZkWuPmh259qjZkWuPmh259qjZTeT3LC94sBkwfZRpqwKHAX8CZg9aduTao2ZHrj1qduTao2ZHrj1qduTao2Y3kd+rj3EfwG9mRwMzgTXN7H7go+7+FIC7329mqwJXu/vPByU7cu1RsyPXHjU7cu1RsyPXHjU7cu1Rs5vI73njGbkBm5NOJ90B2BL4DrAA+FDXe9YFlh3vqDBqduTao2ZHrj1qduTao2ZHrj1qduTao2Y3kR/hMd6GvQc4ZcS0YdJ9oj5D2s9brJCg2ZFrj5odufao2ZFrj5odufao2ZFrj5rdRH6Ex3jPpjwXMDPbtjPB3ecBh5AuyjZznHn9kF13vrKbz1d28/nKbj5f2c3nK7ud/N5XYAR7KOlGnScBE7um3wj8XcnRccjsyLVHzY5ce9TsyLVHzY5ce9TsyLVHzW4iv9cfY7q0hZmtTbr9wG/d/e58IN3JpNNMzyLdpmC6u+++2LA+yY5ce9TsyLVHzY5ce9TsyLVHzY5ce9TsJvIjWexgzMxWAc4EFgJPAWe6+yn5tWHSgXd3Ar929wfGNfOg2ZFrj5odufao2ZFrj5odufao2ZFrj5rdRH44i9t0BnwbODr/fXfgDmDjKjbLRc2OXHvU7Mi1R82OXHvU7Mi1R82OXHvU7Cbyoz1e8gB+M1uNdGuC0wDc/RLgctLtCTCztc1sV7Px35Yganbk2qNmR649anbk2qNmR649anbk2qNmN5Ef0hhGr5sA07qebwV8N//9fODdJUbGIbMj1x41O3LtUbMj1x41O3LtUbMj1x41u4n8aI+xHDNmnt9kZksASwFzgd8AW7v7ri8Z0IfZkWuPmh259qjZkWuPmh259qjZkWuPmt1EfjSLvR1Sp1n5788Cz1q6VcHRwE5lZh41u+58ZTefr+zm85XdfL6ym89Xdjv50Yz73pTZXODP7n5lhbVEz647X9nN5yu7+XxlN5+v7Obzld1Ofs8a03XGRv2HZhPcfWHF9YTOrjtf2c3nK7v5fGU3n6/s5vOV3U5+ryo8GBMRERGR8sZ7b0oRERERqZAGYyIiIiIt0mBMREREpEUajIlIGGY2ZGZvGe/7zGzYzE6stzoRkWI0GBORVphZkUvrDAGLHYyNfJ+7z3P39xWYn4hI7XQ2pYjUxszeBhwBOHAT8DzwCLAFcD3wz8CXgU1J1z38F3e/wMyGSPetWzpHHebu/2NmPwdeDtwFnAKcCBwP7AgsCXzF3b82yvtuAI5w9z3N7F+AtYFVgPWBDwGzgdcDfwDe4O7PmtlWwL8D04CHgEPc/YHquyQig67oRV9FRF6SmW0MfBzYzt0fMrPlSYOb9YFd3P15M/s08F/ufqiZLQdca2Y/AuYDr3X3v5jZLOB0YBg4ijyoyvOYA/zJ3V9pZksCV5vZ5aO8b8cR5a0L/B2wEXAN8CZ3P9LMzgP2MLOLSYPEvd19gZntDxwHHFpPt0RkkGkwJiJ12Qk4290fAnD3R8wM4Cx3fz6/Z1dgLzM7Ij+fAqwJ3A+cZGabk7amrb+IeewKbGZm++bnywKzgGcWU9uleevXzcBE4Id5+s2kXZwbkG5kfEWueSKgrWIiUgsNxkSkLkbaPTnSkyPe8yZ3v+NF/zDtSnwQeAXp2Na/vMQ8Dnf3y0b8+x0XU9vTAO6+0Mye7bpP3kLS96IBt7r7NovJEREpTQfwi0hdfgzsZ2YrAOTdlCNdBhxuefOTmW2Rpy8LPJBvi/JW0pYpgMeB6SP+/XvNbIn879c3s6VHed943QHMNLNtcu4SeberiEjltGVMRGrh7rea2XHAT83sedJB9CMdC3wRuCkPyO4G9gT+AzjHzN4M/IQXtqbdBDxnZr8Evg18ibRb8fr87xcA+4zyvtHm/VK1P5N3fZ5oZsuSviu/CNw6nhwRkbHQ2ZQiIiIiLdJuShEREZEWaTAmIiIi0iINxkRERERapMGYiIiISIs0GBMRERFpkQZjIiIiIi3SYExERESkRRqMiYiIiLTo/wPi+7FPZk99GAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#折线图和直方图，可以看出业务的高峰时段在什么时候，分不清具体时间，绘制柱状图\n",
    "plt.figure(figsize=(10,3))  #修改表的大小，单位英寸\n",
    "df2['count'].plot(kind = 'bar')\n",
    "#文字旋转\n",
    "plt.xticks(rotation = 60)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 分析有无异常时段，访问接口过于频繁，可能是黑客潮水攻击\n",
    "df['2019-5-1'][['count']].boxplot(showmeans = True,meanline=True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>createtime</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>createtime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 20:47:09</th>\n",
       "      <td>21</td>\n",
       "      <td>3117.20</td>\n",
       "      <td>84.90</td>\n",
       "      <td>260.82</td>\n",
       "      <td>148.0</td>\n",
       "      <td>2018-11-01 20:47:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 21:03:09</th>\n",
       "      <td>21</td>\n",
       "      <td>3706.20</td>\n",
       "      <td>78.12</td>\n",
       "      <td>321.47</td>\n",
       "      <td>176.0</td>\n",
       "      <td>2018-11-01 21:03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 21:13:09</th>\n",
       "      <td>24</td>\n",
       "      <td>4602.03</td>\n",
       "      <td>76.31</td>\n",
       "      <td>391.12</td>\n",
       "      <td>191.0</td>\n",
       "      <td>2018-11-01 21:13:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-02 21:34:11</th>\n",
       "      <td>30</td>\n",
       "      <td>4610.15</td>\n",
       "      <td>72.49</td>\n",
       "      <td>463.41</td>\n",
       "      <td>153.0</td>\n",
       "      <td>2018-11-02 21:34:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-03 14:20:13</th>\n",
       "      <td>21</td>\n",
       "      <td>3113.93</td>\n",
       "      <td>74.29</td>\n",
       "      <td>266.20</td>\n",
       "      <td>148.0</td>\n",
       "      <td>2018-11-03 14:20:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-03 20:16:13</th>\n",
       "      <td>21</td>\n",
       "      <td>2992.24</td>\n",
       "      <td>86.28</td>\n",
       "      <td>246.71</td>\n",
       "      <td>142.0</td>\n",
       "      <td>2018-11-03 20:16:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-03 22:01:13</th>\n",
       "      <td>22</td>\n",
       "      <td>3615.11</td>\n",
       "      <td>108.00</td>\n",
       "      <td>231.49</td>\n",
       "      <td>164.0</td>\n",
       "      <td>2018-11-03 22:01:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-03 22:42:13</th>\n",
       "      <td>28</td>\n",
       "      <td>4332.65</td>\n",
       "      <td>76.26</td>\n",
       "      <td>263.33</td>\n",
       "      <td>154.0</td>\n",
       "      <td>2018-11-03 22:42:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-05 15:49:17</th>\n",
       "      <td>24</td>\n",
       "      <td>3723.64</td>\n",
       "      <td>88.97</td>\n",
       "      <td>280.92</td>\n",
       "      <td>155.0</td>\n",
       "      <td>2018-11-05 15:49:17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-05 19:33:17</th>\n",
       "      <td>21</td>\n",
       "      <td>2831.71</td>\n",
       "      <td>78.66</td>\n",
       "      <td>170.69</td>\n",
       "      <td>134.0</td>\n",
       "      <td>2018-11-05 19:33:17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-06 20:49:20</th>\n",
       "      <td>21</td>\n",
       "      <td>3414.39</td>\n",
       "      <td>87.02</td>\n",
       "      <td>257.39</td>\n",
       "      <td>162.0</td>\n",
       "      <td>2018-11-06 20:49:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-08 15:56:23</th>\n",
       "      <td>21</td>\n",
       "      <td>3356.42</td>\n",
       "      <td>85.43</td>\n",
       "      <td>252.38</td>\n",
       "      <td>159.0</td>\n",
       "      <td>2018-11-08 15:56:23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-08 20:50:23</th>\n",
       "      <td>23</td>\n",
       "      <td>3998.72</td>\n",
       "      <td>90.64</td>\n",
       "      <td>398.60</td>\n",
       "      <td>173.0</td>\n",
       "      <td>2018-11-08 20:50:23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-08 20:51:23</th>\n",
       "      <td>21</td>\n",
       "      <td>3736.10</td>\n",
       "      <td>87.71</td>\n",
       "      <td>327.77</td>\n",
       "      <td>177.0</td>\n",
       "      <td>2018-11-08 20:51:23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-08 20:59:23</th>\n",
       "      <td>21</td>\n",
       "      <td>3161.50</td>\n",
       "      <td>89.86</td>\n",
       "      <td>423.33</td>\n",
       "      <td>150.0</td>\n",
       "      <td>2018-11-08 20:59:23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-09 20:49:25</th>\n",
       "      <td>21</td>\n",
       "      <td>3962.84</td>\n",
       "      <td>129.44</td>\n",
       "      <td>322.40</td>\n",
       "      <td>188.0</td>\n",
       "      <td>2018-11-09 20:49:25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-09 21:41:25</th>\n",
       "      <td>21</td>\n",
       "      <td>3199.91</td>\n",
       "      <td>75.82</td>\n",
       "      <td>276.96</td>\n",
       "      <td>152.0</td>\n",
       "      <td>2018-11-09 21:41:25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-09 22:09:25</th>\n",
       "      <td>22</td>\n",
       "      <td>3582.53</td>\n",
       "      <td>108.02</td>\n",
       "      <td>246.32</td>\n",
       "      <td>162.0</td>\n",
       "      <td>2018-11-09 22:09:25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-10 20:07:26</th>\n",
       "      <td>22</td>\n",
       "      <td>3362.64</td>\n",
       "      <td>80.28</td>\n",
       "      <td>225.21</td>\n",
       "      <td>152.0</td>\n",
       "      <td>2018-11-10 20:07:26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-10 21:17:26</th>\n",
       "      <td>21</td>\n",
       "      <td>3407.67</td>\n",
       "      <td>100.55</td>\n",
       "      <td>263.82</td>\n",
       "      <td>162.0</td>\n",
       "      <td>2018-11-10 21:17:26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-10 21:48:26</th>\n",
       "      <td>21</td>\n",
       "      <td>3274.11</td>\n",
       "      <td>84.12</td>\n",
       "      <td>354.66</td>\n",
       "      <td>155.0</td>\n",
       "      <td>2018-11-10 21:48:26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-10 22:03:26</th>\n",
       "      <td>21</td>\n",
       "      <td>3525.31</td>\n",
       "      <td>119.81</td>\n",
       "      <td>283.33</td>\n",
       "      <td>167.0</td>\n",
       "      <td>2018-11-10 22:03:26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-11 17:02:28</th>\n",
       "      <td>21</td>\n",
       "      <td>3123.46</td>\n",
       "      <td>68.51</td>\n",
       "      <td>359.94</td>\n",
       "      <td>148.0</td>\n",
       "      <td>2018-11-11 17:02:28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-11 20:45:28</th>\n",
       "      <td>21</td>\n",
       "      <td>3515.21</td>\n",
       "      <td>85.81</td>\n",
       "      <td>297.33</td>\n",
       "      <td>167.0</td>\n",
       "      <td>2018-11-11 20:45:28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-11 20:48:28</th>\n",
       "      <td>21</td>\n",
       "      <td>3006.97</td>\n",
       "      <td>83.48</td>\n",
       "      <td>353.50</td>\n",
       "      <td>143.0</td>\n",
       "      <td>2018-11-11 20:48:28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-11 22:17:28</th>\n",
       "      <td>23</td>\n",
       "      <td>3709.56</td>\n",
       "      <td>92.62</td>\n",
       "      <td>314.90</td>\n",
       "      <td>161.0</td>\n",
       "      <td>2018-11-11 22:17:28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-12 16:28:30</th>\n",
       "      <td>22</td>\n",
       "      <td>3328.76</td>\n",
       "      <td>78.25</td>\n",
       "      <td>257.35</td>\n",
       "      <td>151.0</td>\n",
       "      <td>2018-11-12 16:28:30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-12 21:01:30</th>\n",
       "      <td>21</td>\n",
       "      <td>3177.52</td>\n",
       "      <td>92.07</td>\n",
       "      <td>226.59</td>\n",
       "      <td>151.0</td>\n",
       "      <td>2018-11-12 21:01:30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-12 21:06:30</th>\n",
       "      <td>21</td>\n",
       "      <td>3887.31</td>\n",
       "      <td>100.05</td>\n",
       "      <td>292.41</td>\n",
       "      <td>185.0</td>\n",
       "      <td>2018-11-12 21:06:30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-13 15:51:32</th>\n",
       "      <td>23</td>\n",
       "      <td>3505.80</td>\n",
       "      <td>78.76</td>\n",
       "      <td>249.86</td>\n",
       "      <td>152.0</td>\n",
       "      <td>2018-11-13 15:51:32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 16:08:18</th>\n",
       "      <td>27</td>\n",
       "      <td>13177.00</td>\n",
       "      <td>80.89</td>\n",
       "      <td>2768.33</td>\n",
       "      <td>488.0</td>\n",
       "      <td>2019-05-27 16:08:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 18:29:18</th>\n",
       "      <td>23</td>\n",
       "      <td>5264.64</td>\n",
       "      <td>90.01</td>\n",
       "      <td>515.05</td>\n",
       "      <td>228.0</td>\n",
       "      <td>2019-05-27 18:29:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 19:28:18</th>\n",
       "      <td>21</td>\n",
       "      <td>4612.10</td>\n",
       "      <td>93.98</td>\n",
       "      <td>372.50</td>\n",
       "      <td>219.0</td>\n",
       "      <td>2019-05-27 19:28:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 19:49:18</th>\n",
       "      <td>28</td>\n",
       "      <td>5647.21</td>\n",
       "      <td>78.28</td>\n",
       "      <td>648.65</td>\n",
       "      <td>201.0</td>\n",
       "      <td>2019-05-27 19:49:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 20:03:18</th>\n",
       "      <td>21</td>\n",
       "      <td>5146.42</td>\n",
       "      <td>97.18</td>\n",
       "      <td>1250.87</td>\n",
       "      <td>245.0</td>\n",
       "      <td>2019-05-27 20:03:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 20:05:18</th>\n",
       "      <td>21</td>\n",
       "      <td>5242.64</td>\n",
       "      <td>113.51</td>\n",
       "      <td>507.65</td>\n",
       "      <td>249.0</td>\n",
       "      <td>2019-05-27 20:05:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 21:13:18</th>\n",
       "      <td>26</td>\n",
       "      <td>4656.33</td>\n",
       "      <td>102.24</td>\n",
       "      <td>300.69</td>\n",
       "      <td>179.0</td>\n",
       "      <td>2019-05-27 21:13:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 21:16:18</th>\n",
       "      <td>24</td>\n",
       "      <td>5160.23</td>\n",
       "      <td>95.19</td>\n",
       "      <td>538.70</td>\n",
       "      <td>215.0</td>\n",
       "      <td>2019-05-27 21:16:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 21:58:18</th>\n",
       "      <td>25</td>\n",
       "      <td>9587.37</td>\n",
       "      <td>97.71</td>\n",
       "      <td>1304.84</td>\n",
       "      <td>383.0</td>\n",
       "      <td>2019-05-27 21:58:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-27 22:01:18</th>\n",
       "      <td>21</td>\n",
       "      <td>5813.94</td>\n",
       "      <td>118.05</td>\n",
       "      <td>1130.25</td>\n",
       "      <td>276.0</td>\n",
       "      <td>2019-05-27 22:01:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-28 16:19:19</th>\n",
       "      <td>24</td>\n",
       "      <td>5168.07</td>\n",
       "      <td>94.52</td>\n",
       "      <td>869.76</td>\n",
       "      <td>215.0</td>\n",
       "      <td>2019-05-28 16:19:19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-28 20:51:19</th>\n",
       "      <td>23</td>\n",
       "      <td>7090.56</td>\n",
       "      <td>89.50</td>\n",
       "      <td>1613.17</td>\n",
       "      <td>308.0</td>\n",
       "      <td>2019-05-28 20:51:19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-28 20:52:19</th>\n",
       "      <td>23</td>\n",
       "      <td>5801.02</td>\n",
       "      <td>77.39</td>\n",
       "      <td>802.72</td>\n",
       "      <td>252.0</td>\n",
       "      <td>2019-05-28 20:52:19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-28 22:53:19</th>\n",
       "      <td>22</td>\n",
       "      <td>4000.22</td>\n",
       "      <td>83.75</td>\n",
       "      <td>356.17</td>\n",
       "      <td>181.0</td>\n",
       "      <td>2019-05-28 22:53:19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-29 16:02:20</th>\n",
       "      <td>23</td>\n",
       "      <td>10137.39</td>\n",
       "      <td>96.03</td>\n",
       "      <td>1245.05</td>\n",
       "      <td>440.0</td>\n",
       "      <td>2019-05-29 16:02:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-29 20:31:20</th>\n",
       "      <td>22</td>\n",
       "      <td>8799.29</td>\n",
       "      <td>105.93</td>\n",
       "      <td>2386.80</td>\n",
       "      <td>399.0</td>\n",
       "      <td>2019-05-29 20:31:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-29 21:12:20</th>\n",
       "      <td>21</td>\n",
       "      <td>4702.18</td>\n",
       "      <td>97.59</td>\n",
       "      <td>699.19</td>\n",
       "      <td>223.0</td>\n",
       "      <td>2019-05-29 21:12:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-29 21:34:20</th>\n",
       "      <td>24</td>\n",
       "      <td>5368.32</td>\n",
       "      <td>73.77</td>\n",
       "      <td>742.53</td>\n",
       "      <td>223.0</td>\n",
       "      <td>2019-05-29 21:34:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-29 22:46:20</th>\n",
       "      <td>21</td>\n",
       "      <td>6892.93</td>\n",
       "      <td>137.39</td>\n",
       "      <td>1309.64</td>\n",
       "      <td>328.0</td>\n",
       "      <td>2019-05-29 22:46:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-29 23:02:20</th>\n",
       "      <td>24</td>\n",
       "      <td>6331.52</td>\n",
       "      <td>103.16</td>\n",
       "      <td>1196.49</td>\n",
       "      <td>263.0</td>\n",
       "      <td>2019-05-29 23:02:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 20:02:21</th>\n",
       "      <td>24</td>\n",
       "      <td>5038.76</td>\n",
       "      <td>95.34</td>\n",
       "      <td>445.75</td>\n",
       "      <td>209.0</td>\n",
       "      <td>2019-05-30 20:02:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 20:16:21</th>\n",
       "      <td>26</td>\n",
       "      <td>6415.77</td>\n",
       "      <td>85.31</td>\n",
       "      <td>860.74</td>\n",
       "      <td>246.0</td>\n",
       "      <td>2019-05-30 20:16:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:17:21</th>\n",
       "      <td>23</td>\n",
       "      <td>4954.28</td>\n",
       "      <td>97.52</td>\n",
       "      <td>427.05</td>\n",
       "      <td>215.0</td>\n",
       "      <td>2019-05-30 21:17:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:24:21</th>\n",
       "      <td>21</td>\n",
       "      <td>3977.18</td>\n",
       "      <td>93.16</td>\n",
       "      <td>383.06</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2019-05-30 21:24:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:28:21</th>\n",
       "      <td>25</td>\n",
       "      <td>8782.18</td>\n",
       "      <td>98.49</td>\n",
       "      <td>2549.79</td>\n",
       "      <td>351.0</td>\n",
       "      <td>2019-05-30 21:28:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:33:21</th>\n",
       "      <td>27</td>\n",
       "      <td>6456.64</td>\n",
       "      <td>99.65</td>\n",
       "      <td>978.91</td>\n",
       "      <td>239.0</td>\n",
       "      <td>2019-05-30 21:33:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:43:21</th>\n",
       "      <td>21</td>\n",
       "      <td>6371.84</td>\n",
       "      <td>65.98</td>\n",
       "      <td>1175.37</td>\n",
       "      <td>303.0</td>\n",
       "      <td>2019-05-30 21:43:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:47:21</th>\n",
       "      <td>21</td>\n",
       "      <td>3992.83</td>\n",
       "      <td>87.83</td>\n",
       "      <td>440.88</td>\n",
       "      <td>190.0</td>\n",
       "      <td>2019-05-30 21:47:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:53:21</th>\n",
       "      <td>24</td>\n",
       "      <td>8467.02</td>\n",
       "      <td>120.22</td>\n",
       "      <td>1511.17</td>\n",
       "      <td>352.0</td>\n",
       "      <td>2019-05-30 21:53:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 22:17:21</th>\n",
       "      <td>21</td>\n",
       "      <td>4926.35</td>\n",
       "      <td>85.01</td>\n",
       "      <td>826.90</td>\n",
       "      <td>234.0</td>\n",
       "      <td>2019-05-30 22:17:21</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>746 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "createtime                                                             \n",
       "2018-11-01 20:47:09     21       3117.20         84.90        260.82   \n",
       "2018-11-01 21:03:09     21       3706.20         78.12        321.47   \n",
       "2018-11-01 21:13:09     24       4602.03         76.31        391.12   \n",
       "2018-11-02 21:34:11     30       4610.15         72.49        463.41   \n",
       "2018-11-03 14:20:13     21       3113.93         74.29        266.20   \n",
       "...                    ...           ...           ...           ...   \n",
       "2019-05-30 21:33:21     27       6456.64         99.65        978.91   \n",
       "2019-05-30 21:43:21     21       6371.84         65.98       1175.37   \n",
       "2019-05-30 21:47:21     21       3992.83         87.83        440.88   \n",
       "2019-05-30 21:53:21     24       8467.02        120.22       1511.17   \n",
       "2019-05-30 22:17:21     21       4926.35         85.01        826.90   \n",
       "\n",
       "                     res_time_avg           createtime  \n",
       "createtime                                              \n",
       "2018-11-01 20:47:09         148.0  2018-11-01 20:47:09  \n",
       "2018-11-01 21:03:09         176.0  2018-11-01 21:03:09  \n",
       "2018-11-01 21:13:09         191.0  2018-11-01 21:13:09  \n",
       "2018-11-02 21:34:11         153.0  2018-11-02 21:34:11  \n",
       "2018-11-03 14:20:13         148.0  2018-11-03 14:20:13  \n",
       "...                           ...                  ...  \n",
       "2019-05-30 21:33:21         239.0  2019-05-30 21:33:21  \n",
       "2019-05-30 21:43:21         303.0  2019-05-30 21:43:21  \n",
       "2019-05-30 21:47:21         190.0  2019-05-30 21:47:21  \n",
       "2019-05-30 21:53:21         352.0  2019-05-30 21:53:21  \n",
       "2019-05-30 22:17:21         234.0  2019-05-30 22:17:21  \n",
       "\n",
       "[746 rows x 6 columns]"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#可以看出超过20是异常值，但是不是异常值呢？查出超过20次的时段是在晚上89点，在看看其他日期超过20次的是不是在89点，如果是，这个就不是异常值了\n",
    "df[df['count']>20]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xce44e90>"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#某一天的响应时间，平均响应时间，跟访问次数基本一致\n",
    "df['2019-5-1']['res_time_avg'].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xcea87d0>"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#看异常值\n",
    "df['2019-5-1'][['res_time_avg']].boxplot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\program\\python\\python37-32\\lib\\site-packages\\ipykernel_launcher.py:3: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n",
      "  This is separate from the ipykernel package so we can avoid doing imports until\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>createtime</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>createtime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:34:48</th>\n",
       "      <td>1</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.0</td>\n",
       "      <td>2019-05-01 00:34:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 14:00:49</th>\n",
       "      <td>17</td>\n",
       "      <td>19770.18</td>\n",
       "      <td>207.54</td>\n",
       "      <td>2974.52</td>\n",
       "      <td>1162.0</td>\n",
       "      <td>2019-05-01 14:00:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 18:36:49</th>\n",
       "      <td>8</td>\n",
       "      <td>8799.92</td>\n",
       "      <td>96.59</td>\n",
       "      <td>3233.26</td>\n",
       "      <td>1099.0</td>\n",
       "      <td>2019-05-01 18:36:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:09:49</th>\n",
       "      <td>6</td>\n",
       "      <td>7399.94</td>\n",
       "      <td>307.39</td>\n",
       "      <td>3153.02</td>\n",
       "      <td>1233.0</td>\n",
       "      <td>2019-05-01 19:09:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:10:49</th>\n",
       "      <td>13</td>\n",
       "      <td>23595.60</td>\n",
       "      <td>206.20</td>\n",
       "      <td>4664.84</td>\n",
       "      <td>1815.0</td>\n",
       "      <td>2019-05-01 19:10:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 20:38:49</th>\n",
       "      <td>15</td>\n",
       "      <td>16169.25</td>\n",
       "      <td>142.47</td>\n",
       "      <td>3624.26</td>\n",
       "      <td>1077.0</td>\n",
       "      <td>2019-05-01 20:38:49</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "createtime                                                             \n",
       "2019-05-01 00:34:48      1       1694.47       1694.47       1694.47   \n",
       "2019-05-01 14:00:49     17      19770.18        207.54       2974.52   \n",
       "2019-05-01 18:36:49      8       8799.92         96.59       3233.26   \n",
       "2019-05-01 19:09:49      6       7399.94        307.39       3153.02   \n",
       "2019-05-01 19:10:49     13      23595.60        206.20       4664.84   \n",
       "2019-05-01 20:38:49     15      16169.25        142.47       3624.26   \n",
       "\n",
       "                     res_time_avg           createtime  \n",
       "createtime                                              \n",
       "2019-05-01 00:34:48        1694.0  2019-05-01 00:34:48  \n",
       "2019-05-01 14:00:49        1162.0  2019-05-01 14:00:49  \n",
       "2019-05-01 18:36:49        1099.0  2019-05-01 18:36:49  \n",
       "2019-05-01 19:09:49        1233.0  2019-05-01 19:09:49  \n",
       "2019-05-01 19:10:49        1815.0  2019-05-01 19:10:49  \n",
       "2019-05-01 20:38:49        1077.0  2019-05-01 20:38:49  "
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#可以看出异常值很多\n",
    "df2 = df['2019-5-1']\n",
    "df2[df['res_time_avg']>1000]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "#2019-05-01 00:34:48\t点的确实有异常，无人访问但响应时间那么大，2019-05-01 19:10:49点也不是高峰期，响应时间也大"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#重采样，设置成20分钟一次，每分钟做折线图不够平滑\n",
    "data = df['2019-5-1'].resample('20T').mean()\n",
    "data[['res_time_sum','res_time_min','res_time_max','res_time_avg']].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "#看出3点和8点是业务高峰时段，"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 评估10天的数据\n",
    "df['2019-5-1':'2019-5-10']['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n",
       "            ...\n",
       "            3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n",
       "           dtype='int64', name='createtime', length=865)"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 每天情况差不多，，看看周末和平常是不是一样\n",
    "df['2019-5-2'].index.weekday #0 星期一，1 星期二"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "#添加一列，表示他是周几\n",
    "df['weekday'] = df.index.weekday"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>createtime</th>\n",
       "      <th>weekday</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>createtime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "createtime                                                             \n",
       "2018-11-01 00:00:07      8       1057.31         88.75        177.72   \n",
       "2018-11-01 00:01:07      5        749.12        103.79        240.38   \n",
       "\n",
       "                     res_time_avg           createtime  weekday  \n",
       "createtime                                                       \n",
       "2018-11-01 00:00:07         132.0  2018-11-01 00:00:07        3  \n",
       "2018-11-01 00:01:07         149.0  2018-11-01 00:01:07        3  "
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>createtime</th>\n",
       "      <th>weekday</th>\n",
       "      <th>weekend</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>createtime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:02:07</th>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:03:07</th>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:04:07</th>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "createtime                                                             \n",
       "2018-11-01 00:00:07      8       1057.31         88.75        177.72   \n",
       "2018-11-01 00:01:07      5        749.12        103.79        240.38   \n",
       "2018-11-01 00:02:07      5        845.84        136.31        225.73   \n",
       "2018-11-01 00:03:07      9       1305.52         90.12        196.61   \n",
       "2018-11-01 00:04:07      3        568.89        138.45        232.02   \n",
       "\n",
       "                     res_time_avg           createtime  weekday  weekend  \n",
       "createtime                                                                \n",
       "2018-11-01 00:00:07         132.0  2018-11-01 00:00:07        3    False  \n",
       "2018-11-01 00:01:07         149.0  2018-11-01 00:01:07        3    False  \n",
       "2018-11-01 00:02:07         169.0  2018-11-01 00:02:07        3    False  \n",
       "2018-11-01 00:03:07         145.0  2018-11-01 00:03:07        3    False  \n",
       "2018-11-01 00:04:07         189.0  2018-11-01 00:04:07        3    False  "
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#判断是不是周末，是不是5，6\n",
    "df['weekend'] = df['weekday'].isin({5,6})\n",
    "df.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "weekend\n",
       "False    7.016846\n",
       "True     7.574989\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#对weekend 进行分组，对count列 求平均值\n",
    "df.groupby('weekend')['count'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "weekend  createtime\n",
       "False    0              3.239120\n",
       "         1              1.668388\n",
       "         2              1.162551\n",
       "         3              1.086705\n",
       "         4              1.155556\n",
       "         5              1.136364\n",
       "         6              1.000000\n",
       "         7              1.000000\n",
       "         8              1.000000\n",
       "         9              1.080000\n",
       "         10             1.239011\n",
       "         11             2.031690\n",
       "         12             4.195845\n",
       "         13             6.668042\n",
       "         14             8.260503\n",
       "         15             8.934448\n",
       "         16             8.466504\n",
       "         17             6.784996\n",
       "         18             6.717731\n",
       "         19             8.655913\n",
       "         20            10.536496\n",
       "         21            10.846906\n",
       "         22             9.034164\n",
       "         23             5.946834\n",
       "True     0              3.467782\n",
       "         1              1.741849\n",
       "         2              1.161826\n",
       "         3              1.050000\n",
       "         4              1.076923\n",
       "         5              1.333333\n",
       "         6              1.000000\n",
       "         7              1.000000\n",
       "         8              1.071429\n",
       "         9              1.144928\n",
       "         10             1.254111\n",
       "         11             1.992958\n",
       "         12             4.031889\n",
       "         13             6.905772\n",
       "         14             8.851321\n",
       "         15             9.858422\n",
       "         16             9.420550\n",
       "         17             7.334743\n",
       "         18             7.342150\n",
       "         19             9.270430\n",
       "         20            11.173609\n",
       "         21            11.695043\n",
       "         22            10.419916\n",
       "         23             7.025452\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#k可以看出周末平均次数多\n",
    "# 求周末哪个时段调用次数比较高\n",
    "df.groupby(['weekend',df.index.hour])['count'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#周末和非周末，具体时间比较，绘成图形，否则不直观\n",
    "df.groupby(['weekend',df.index.hour])['count'].mean().plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>weekend</th>\n",
       "      <th>False</th>\n",
       "      <th>True</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>createtime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3.239120</td>\n",
       "      <td>3.467782</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.668388</td>\n",
       "      <td>1.741849</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.162551</td>\n",
       "      <td>1.161826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.086705</td>\n",
       "      <td>1.050000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.155556</td>\n",
       "      <td>1.076923</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1.136364</td>\n",
       "      <td>1.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.071429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1.080000</td>\n",
       "      <td>1.144928</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>1.239011</td>\n",
       "      <td>1.254111</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2.031690</td>\n",
       "      <td>1.992958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>4.195845</td>\n",
       "      <td>4.031889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>6.668042</td>\n",
       "      <td>6.905772</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>8.260503</td>\n",
       "      <td>8.851321</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>8.934448</td>\n",
       "      <td>9.858422</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>8.466504</td>\n",
       "      <td>9.420550</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>6.784996</td>\n",
       "      <td>7.334743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>6.717731</td>\n",
       "      <td>7.342150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>8.655913</td>\n",
       "      <td>9.270430</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>10.536496</td>\n",
       "      <td>11.173609</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>10.846906</td>\n",
       "      <td>11.695043</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>9.034164</td>\n",
       "      <td>10.419916</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>5.946834</td>\n",
       "      <td>7.025452</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "weekend         False      True \n",
       "createtime                      \n",
       "0            3.239120   3.467782\n",
       "1            1.668388   1.741849\n",
       "2            1.162551   1.161826\n",
       "3            1.086705   1.050000\n",
       "4            1.155556   1.076923\n",
       "5            1.136364   1.333333\n",
       "6            1.000000   1.000000\n",
       "7            1.000000   1.000000\n",
       "8            1.000000   1.071429\n",
       "9            1.080000   1.144928\n",
       "10           1.239011   1.254111\n",
       "11           2.031690   1.992958\n",
       "12           4.195845   4.031889\n",
       "13           6.668042   6.905772\n",
       "14           8.260503   8.851321\n",
       "15           8.934448   9.858422\n",
       "16           8.466504   9.420550\n",
       "17           6.784996   7.334743\n",
       "18           6.717731   7.342150\n",
       "19           8.655913   9.270430\n",
       "20          10.536496  11.173609\n",
       "21          10.846906  11.695043\n",
       "22           9.034164  10.419916\n",
       "23           5.946834   7.025452"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#z周末和非周末数据叠加    unstack()是什么？  将其中一层的行索引变成列索引 利用level可以选择具体哪层索引\n",
    "df.groupby(['weekend',df.index.hour])['count'].mean().unstack(level = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#在绘制成图形,通过以小时为间隔，看访问次数\n",
    "df.groupby(['weekend',df.index.hour])['count'].mean().unstack(level = 0).plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
